Device, Method, and Graphical User Interface for Organizing and Presenting a Collection of Media Items

ABSTRACT

An electronic device with a display and, optionally, a touch-sensitive surface obtains a collection of media items. In some embodiments, the device determines one or more patterns in the collection based on a comparison between properties of sequentially adjacent items and divides the collection into multiple events that includes a plurality of multi-item events. In some embodiments, the device receives a first request to display a first portion of the collection organized in accordance with a first detailed-granularity level and, in response to the first request, displaying a first plurality of representations of the items. The device receives a second request to display a second portion of the collection organized in accordance with a respective overview-granularity level that corresponds to multiple detailed-granularity levels and, in response to the second request, displays a second plurality of representations of the items.

RELATED APPLICATIONS

This application is a continuation of U.S. application Ser. No.14/183,405, filed Feb. 18, 2014, which claims priority to U.S.Provisional Patent Application No. 61/801,448 filed Mar. 15, 2013, whichapplications are incorporated by reference herein in their entirety.

TECHNICAL FIELD

This relates generally to electronic devices with touch-sensitivesurfaces, including but not limited to electronic devices withtouch-sensitive surfaces that organize a collection of media items.

BACKGROUND

The use of touch-sensitive surfaces as input devices for computers andother electronic computing devices has increased significantly in recentyears. Exemplary touch-sensitive surfaces include touch pads and touchscreen displays. Such surfaces are widely used to manipulate userinterface objects on a display.

Exemplary manipulations include adjusting the position and/or size ofone or more images or viewing images that are associated with an albumof images. Exemplary user interface objects include digital images,video, text, icons, control elements such as buttons and other graphics.A user will, in some circumstances, need to perform such manipulationson user interface objects in a file management program (e.g., Finderfrom Apple Inc. of Cupertino, Calif.), an image management application(e.g., Aperture or iPhoto from Apple Inc. of Cupertino, Calif.), adigital content (e.g., videos and music) management application (e.g.,iTunes from Apple Inc. of Cupertino, Calif.), a drawing application, apresentation application (e.g., Keynote from Apple Inc. of Cupertino,Calif.), a word processing application (e.g., Pages from Apple Inc. ofCupertino, Calif.), a website creation application (e.g., iWeb fromApple Inc. of Cupertino, Calif.), a disk authoring application (e.g.,iDVD from Apple Inc. of Cupertino, Calif.), or a spreadsheet application(e.g., Numbers from Apple Inc. of Cupertino, Calif.).

But methods for performing these manipulations are cumbersome andinefficient. For example, using a sequence of mouse based inputs toselect one or more user interface objects and perform one or moreactions on the selected user interface objects is tedious and creates asignificant cognitive burden on a user. In addition, these methods takelonger than necessary, thereby wasting energy. This latter considerationis particularly important in battery-operated devices.

SUMMARY

Accordingly, there is a need for electronic devices with faster, moreefficient methods and interfaces for organizing and presenting acollection of media items. Such methods and interfaces optionallycomplement or replace conventional methods for organizing and presentinga collection of media items. Such methods and interfaces reduce thecognitive burden on a user and produce a more efficient human-machineinterface. For battery-operated devices, such methods and interfacesconserve power and increase the time between battery charges.

The above deficiencies and other problems associated with userinterfaces for electronic devices with touch-sensitive surfaces arereduced or eliminated by the disclosed devices. In some embodiments, thedevice is a desktop computer. In some embodiments, the device isportable (e.g., a notebook computer, tablet computer, or handhelddevice). In some embodiments, the device has a touchpad. In someembodiments, the device has a touch-sensitive display (also known as a“touch screen” or “touch screen display”). In some embodiments, thedevice has a graphical user interface (GUI), one or more processors,memory and one or more modules, programs or sets of instructions storedin the memory for performing multiple functions. In some embodiments,the user interacts with the GUI primarily through finger contacts andgestures on the touch-sensitive surface. In some embodiments, thefunctions optionally include image editing, drawing, presenting, wordprocessing, website creating, disk authoring, spreadsheet making, gameplaying, telephoning, video conferencing, e-mailing, instant messaging,workout support, digital photographing, digital videoing, web browsing,digital music playing, and/or digital video playing. Executableinstructions for performing these functions are, optionally, included ina non-transitory computer readable storage medium or other computerprogram product configured for execution by one or more processors.

In accordance with some embodiments, a method is performed at anelectronic device with a display, one or more processors and memory. Themethod includes: obtaining a collection of media items, where the mediaitems are ordered in a chronological order in accordance with a timeindicator associated with each of the media items; and determining oneor more patterns in the collection of media items based at least in parton a comparison between properties of sequentially adjacent media itemsin the collection of media items. The method further includes dividingthe collection of media items into multiple events that includes aplurality of multi-item events, where: each multi-item event includes aplurality of the media items with time indicators within a correspondingevent time range; and the event time range for a multi-item event isselected in accordance with the one or more patterns determined in thecollection of media items.

In accordance with some embodiments, an electronic device includes adisplay unit configured to display a graphic user interface; and aprocessing unit coupled to the display unit. The processing unit isconfigured to obtain a collection of media items, where the media itemsare ordered in a chronological order in accordance with a time indicatorassociated with each of the media items. The processing unit is furtherconfigured to: determine one or more patterns in the collection of mediaitems based at least in part on a comparison between properties ofsequentially adjacent media items in the collection of media items; anddivide the collection of media items into multiple events that includesa plurality of multi-item events, where: each multi-item event includesa plurality of the media items with time indicators within acorresponding event time range; and the event time range for amulti-item event is selected in accordance with the one or more patternsdetermined in the collection of media items.

In accordance with some embodiments, a method is performed at anelectronic device with a display, a touch-sensitive surface, one or moreprocessors and memory. The method includes obtaining a collection ofmedia items, where the media items are organized into a hierarchy ofgranularity levels that includes one or more detailed-granularity levelswithin one or more overview-granularity levels. The method furtherincludes: receiving a first request to display a first portion of thecollection organized in accordance with a first detailed-granularitylevel; and in response to the first request, displaying a firstplurality of representations of the media items, where: the firstplurality of representations are displayed at a detailed-granularitysize; and the first plurality of representations are spaced apart fromeach other by a detailed-granularity distance. The method furtherincludes: receiving a second request to display a second portion of thecollection organized in accordance with a respectiveoverview-granularity level that corresponds to multipledetailed-granularity levels; and in response to the second request,displaying a second plurality of representations of the media items,where: the second plurality of representations are displayed at anoverview-granularity size, smaller than the detailed-granularity size;and the second plurality of representations are spaced apart from eachother by an overview-granularity distance, smaller than thedetailed-granularity distance.

In accordance with some embodiments, an electronic device includes adisplay unit configured to display a graphic user interface, atouch-sensitive surface unit configured to receive contacts; and aprocessing unit coupled to the display unit and the touch-sensitivesurface unit. The processing unit is configured to obtain a collectionof media items, where the media items are organized into a hierarchy ofgranularity levels that includes one or more detailed-granularity levelswithin one or more overview-granularity levels. The processing unit isfurther configured to: receive a first request to display on the displayunit a first portion of the collection organized in accordance with afirst detailed-granularity level; and in response to the first request,enable display of a first plurality of representations of the mediaitems, where: the first plurality of representations are displayed at adetailed-granularity size; and the first plurality of representationsare spaced apart from each other by a detailed-granularity distance. Theprocessing unit is further configured to: receive a second request todisplay on the display unit a second portion of the collection organizedin accordance with a respective overview-granularity level thatcorresponds to multiple detailed-granularity levels; and in response tothe second request, enable display of a second plurality ofrepresentations of the media items, where: the second plurality forrepresentations are displayed at an overview-granularity size, smallerthan the detailed-granularity size; and the second plurality ofrepresentations are spaced apart from each other by anoverview-granularity distance, smaller than the detailed-granularitydistance.

In accordance with some embodiments, an electronic device includes adisplay, optionally a touch-sensitive surface, one or more processors,memory, and one or more programs; the one or more programs are stored inthe memory and configured to be executed by the one or more processorsand the one or more programs include instructions for performing theoperations of any of the methods described above. In accordance withsome embodiments, a graphical user interface on an electronic devicewith a display, optionally a touch-sensitive surface, a memory, and oneor more processors to execute one or more programs stored in the memoryincludes one or more of the elements displayed in any of the methodsdescribed above, which are updated in response to inputs, as describedin any of the methods described above. In accordance with someembodiments, a computer readable storage medium has stored thereininstructions which when executed by an electronic device with a display,optionally a touch-sensitive surface, cause the device to perform theoperations of any of the methods referred described above. In accordancewith some embodiments, an electronic device includes: a display,optionally a touch-sensitive surface; and means for performing theoperations of any of the methods described above. In accordance withsome embodiments, an information processing apparatus, for use in anelectronic device with a display and optionally a touch-sensitivesurface, includes means for performing the operations of any of themethods described above.

Thus, electronic devices with displays and touch-sensitive surfaces areprovided with faster, more efficient methods and interfaces fororganizing and presenting a collection of media items, therebyincreasing the effectiveness, efficiency, and user satisfaction withsuch devices. Such methods and interfaces may complement or replaceconventional methods for organizing and presenting a collection of mediaitems.

BRIEF DESCRIPTION OF THE DRAWINGS

For a better understanding of the various described embodiments,reference should be made to the Description of Embodiments below, inconjunction with the following drawings in which like reference numeralsrefer to corresponding parts throughout the figures.

FIG. 1A is a block diagram illustrating a portable multifunction devicewith a touch-sensitive display in accordance with some embodiments.

FIG. 1B is a block diagram illustrating exemplary components for eventhandling in accordance with some embodiments.

FIG. 2 illustrates a portable multifunction device having a touch screenin accordance with some embodiments.

FIG. 3 is a block diagram of an exemplary multifunction device with adisplay and a touch-sensitive surface in accordance with someembodiments.

FIG. 4A illustrates an exemplary user interface for a menu ofapplications on a portable multifunction device in accordance with someembodiments.

FIG. 4B illustrates an exemplary user interface for a multifunctiondevice with a touch-sensitive surface that is separate from the displayin accordance with some embodiments.

FIGS. 5A-5S illustrate exemplary user interfaces for organizing andpresenting a collection of media items in accordance with someembodiments.

FIGS. 6A-6E are flow diagrams illustrating a method of dividing acollection of media items into a plurality of multi-item events inaccordance with some embodiments.

FIGS. 7A-7D are flow diagrams illustrating a method of organizing acollection of media items into a hierarchy of granularity levels inaccordance with some embodiments.

FIG. 8 is a functional block diagram of an electronic device inaccordance with some embodiments.

FIG. 9 is a functional block diagram of an electronic device inaccordance with some embodiments.

DESCRIPTION OF EMBODIMENTS

Many electronic devices have graphical user interfaces that organize aplurality of images. For example, the plurality of images is organizedaccording to the capture dates of the respective images. The devicedescribed below improves on these methods by obtaining a collection ofmedia items ordered in a chronological order in accordance with a timeindicator associated with each of the media items. The device determinesone or more patterns in the collection of media items based at least inpart on a comparison between properties (e.g., metadata including time,date, location, altitude, speed, network connections, weather,biometrics, facial recognition, etc.) of sequentially adjacent mediaitems in the collection of media items and divides the collection ofmedia items into multiple events that includes a plurality of multi-itemevents.

In some embodiments, the device obtains a collection of media itemsorganized into a hierarchy of granularity levels that includes one ormore detailed-granularity levels within one or more overview-granularitylevels. The device receives a receiving a first request to display afirst portion of the collection organized in accordance with a firstdetailed-granularity level and displays a first plurality ofrepresentations of the media items in response to the first request. Thedevice also receives a second request to display a second portion of thecollection organized in accordance with a respectiveoverview-granularity level that corresponds to multipledetailed-granularity levels and displays a second plurality ofrepresentations of the media items in response to the second request.

Below, FIGS. 1A-1B, 2, and 3 provide a description of exemplary devices.FIGS. 4A-4B and 5A-5S illustrate exemplary user interfaces fororganizing and presenting a collection of media items. FIGS. 6A-6E areflow diagrams illustrating a method of dividing a collection of mediaitems into a plurality of multi-item events. FIGS. 7A-7D are flowdiagrams illustrating a method of organizing a collection of media itemsinto a hierarchy of granularity levels. The user interfaces in FIGS.5A-5S are used to illustrate the processes in FIGS. 6A-6E and 7A-7D.

Exemplary Devices

Reference will now be made in detail to embodiments, examples of whichare illustrated in the accompanying drawings. In the following detaileddescription, numerous specific details are set forth in order to providea thorough understanding of the various described embodiments. However,it will be apparent to one of ordinary skill in the art that the variousdescribed embodiments may be practiced without these specific details.In other instances, well-known methods, procedures, components,circuits, and networks have not been described in detail so as not tounnecessarily obscure aspects of the embodiments.

It will also be understood that, although the terms first, second, etc.are, in some instances, used herein to describe various elements, theseelements should not be limited by these terms. These terms are only usedto distinguish one element from another. For example, a first contactcould be termed a second contact, and, similarly, a second contact couldbe termed a first contact, without departing from the scope of thevarious described embodiments. The first contact and the second contactare both contacts, but they are not the same contact.

The terminology used in the description of the various describedembodiments herein is for the purpose of describing particularembodiments only and is not intended to be limiting. As used in thedescription of the various described embodiments and the appendedclaims, the singular forms “a”, “an” and “the” are intended to includethe plural forms as well, unless the context clearly indicatesotherwise. It will also be understood that the term “and/or” as usedherein refers to and encompasses any and all possible combinations ofone or more of the associated listed items. It will be furtherunderstood that the terms “includes,” “including,” “comprises,” and/or“comprising,” when used in this specification, specify the presence ofstated features, integers, steps, operations, elements, and/orcomponents, but do not preclude the presence or addition of one or moreother features, integers, steps, operations, elements, components,and/or groups thereof.

As used herein, the term “if” is, optionally, construed to mean “when”or “upon” or “in response to determining” or “in response to detecting,”depending on the context. Similarly, the phrase “if it is determined” or“if [a stated condition or event] is detected” is, optionally, construedto mean “upon determining” or “in response to determining” or “upondetecting [the stated condition or event]” or “in response to detecting[the stated condition or event],” depending on the context.

Embodiments of electronic devices, user interfaces for such devices, andassociated processes for using such devices are described. In someembodiments, the device is a portable communications device, such as amobile telephone, that also contains other functions, such as PDA and/ormusic player functions. Exemplary embodiments of portable multifunctiondevices include, without limitation, the iPhone®, iPod Touch®, and iPad®devices from Apple Inc. of Cupertino, Calif. Other portable electronicdevices, such as laptops or tablet computers with touch-sensitivesurfaces (e.g., touch screen displays and/or touch pads), are,optionally, used. It should also be understood that, in someembodiments, the device is not a portable communications device, but isa desktop computer with a touch-sensitive surface (e.g., a touch screendisplay and/or a touch pad).

In the discussion that follows, an electronic device that includes adisplay and a touch-sensitive surface is described. It should beunderstood, however, that the electronic device optionally includes oneor more other physical user-interface devices, such as a physicalkeyboard, a mouse and/or a joystick.

The device typically supports a variety of applications, such as one ormore of the following: a drawing application, a presentationapplication, a word processing application, a website creationapplication, a disk authoring application, a spreadsheet application, agaming application, a telephone application, a video conferencingapplication, an e-mail application, an instant messaging application, aworkout support application, a photo management application, a digitalcamera application, a digital video camera application, a web browsingapplication, a digital music player application, and/or a digital videoplayer application.

The various applications that are executed on the device optionally useat least one common physical user-interface device, such as thetouch-sensitive surface. One or more functions of the touch-sensitivesurface as well as corresponding information displayed on the deviceare, optionally, adjusted and/or varied from one application to the nextand/or within a respective application. In this way, a common physicalarchitecture (such as the touch-sensitive surface) of the deviceoptionally supports the variety of applications with user interfacesthat are intuitive and transparent to the user.

Attention is now directed toward embodiments of portable devices withtouch-sensitive displays. FIG. 1A is a block diagram illustratingportable multifunction device 100 with touch-sensitive displays 112 inaccordance with some embodiments. Touch-sensitive display 112 issometimes called a “touch screen” for convenience, and is sometimesknown as or called a touch-sensitive display system. Device 100 includesmemory 102 (which optionally includes one or more computer readablestorage mediums), memory controller 122, one or more processing units(CPU's) 120, peripherals interface 118, RF circuitry 108, audiocircuitry 110, speaker 111, microphone 113, input/output (I/O) subsystem106, other input or control devices 116, and external port 124. Device100 optionally includes one or more optical sensors 164. Device 100optionally includes one or more intensity sensors 165 for detectingintensity of contacts on device 100 (e.g., a touch-sensitive surfacesuch as touch-sensitive display system 112 of device 100). Device 100optionally includes one or more tactile output generators 167 forgenerating tactile outputs on device 100 (e.g., generating tactileoutputs on a touch-sensitive surface such as touch-sensitive displaysystem 112 of device 100 or touchpad 355 of device 300). Thesecomponents optionally communicate over one or more communication busesor signal lines 103.

As used in the specification and claims, the term “intensity” of acontact on a touch-sensitive surface refers to the force or pressure(force per unit area) of a contact (e.g., a finger contact) on the touchsensitive surface, or to a substitute (proxy) for the force or pressureof a contact on the touch sensitive surface. The intensity of a contacthas a range of values that includes at least four distinct values andmore typically includes hundreds of distinct values (e.g., at least256). Intensity of a contact is, optionally, determined (or measured)using various approaches and various sensors or combinations of sensors.For example, one or more force sensors underneath or adjacent to thetouch-sensitive surface are, optionally, used to measure force atvarious points on the touch-sensitive surface. In some implementations,force measurements from multiple force sensors are combined (e.g., aweighted average) to determine an estimated force of a contact.Similarly, a pressure-sensitive tip of a stylus is, optionally, used todetermine a pressure of the stylus on the touch-sensitive surface.Alternatively, the size of the contact area detected on thetouch-sensitive surface and/or changes thereto, the capacitance of thetouch-sensitive surface proximate to the contact and/or changes thereto,and/or the resistance of the touch-sensitive surface proximate to thecontact and/or changes thereto are, optionally, used as a substitute forthe force or pressure of the contact on the touch-sensitive surface. Insome implementations, the substitute measurements for contact force orpressure are used directly to determine whether an intensity thresholdhas been exceeded (e.g., the intensity threshold is described in unitscorresponding to the substitute measurements). In some implementations,the substitute measurements for contact force or pressure are convertedto an estimated force or pressure and the estimated force or pressure isused to determine whether an intensity threshold has been exceeded(e.g., the intensity threshold is a pressure threshold measured in unitsof pressure).

As used in the specification and claims, the term “tactile output”refers to physical displacement of a device relative to a previousposition of the device, physical displacement of a component (e.g., atouch-sensitive surface) of a device relative to another component(e.g., housing) of the device, or displacement of the component relativeto a center of mass of the device that will be detected by a user withthe user's sense of touch. For example, in situations where the deviceor the component of the device is in contact with a surface of a userthat is sensitive to touch (e.g., a finger, palm, or other part of auser's hand), the tactile output generated by the physical displacementwill be interpreted by the user as a tactile sensation corresponding toa perceived change in physical characteristics of the device or thecomponent of the device. For example, movement of a touch-sensitivesurface (e.g., a touch-sensitive display or trackpad) is, optionally,interpreted by the user as a “down click” or “up click” of a physicalactuator button. In some cases, a user will feel a tactile sensationsuch as an “down click” or “up click” even when there is no movement ofa physical actuator button associated with the touch-sensitive surfacethat is physically pressed (e.g., displaced) by the user's movements. Asanother example, movement of the touch-sensitive surface is, optionally,interpreted or sensed by the user as “roughness” of the touch-sensitivesurface, even when there is no change in smoothness of thetouch-sensitive surface. While such interpretations of touch by a userwill be subject to the individualized sensory perceptions of the user,there are many sensory perceptions of touch that are common to a largemajority of users. Thus, when a tactile output is described ascorresponding to a particular sensory perception of a user (e.g., an “upclick,” a “down click,” “roughness”), unless otherwise stated, thegenerated tactile output corresponds to physical displacement of thedevice or a component thereof that will generate the described sensoryperception for a typical (or average) user.

It should be appreciated that device 100 is only one example of aportable multifunction device, and that device 100 optionally has moreor fewer components than shown, optionally combines two or morecomponents, or optionally has a different configuration or arrangementof the components. The various components shown in FIG. 1A areimplemented in hardware, software, or a combination of both hardware andsoftware, including one or more signal processing and/or applicationspecific integrated circuits.

Memory 102 optionally includes high-speed random access memory andoptionally also includes non-volatile memory, such as one or moremagnetic disk storage devices, flash memory devices, or othernon-volatile solid-state memory devices. Access to memory 102 by othercomponents of device 100, such as CPU 120 and the peripherals interface118, is, optionally, controlled by memory controller 122.

Peripherals interface 118 can be used to couple input and outputperipherals of the device to CPU 120 and memory 102. The one or moreprocessors 120 run or execute various software programs and/or sets ofinstructions stored in memory 102 to perform various functions fordevice 100 and to process data.

In some embodiments, peripherals interface 118, CPU 120, and memorycontroller 122 are, optionally, implemented on a single chip, such aschip 104. In some other embodiments, they are, optionally, implementedon separate chips.

RF (radio frequency) circuitry 108 receives and sends RF signals, alsocalled electromagnetic signals. RF circuitry 108 converts electricalsignals to/from electromagnetic signals and communicates withcommunications networks and other communications devices via theelectromagnetic signals. RF circuitry 108 optionally includes well-knowncircuitry for performing these functions, including but not limited toan antenna system, an RF transceiver, one or more amplifiers, a tuner,one or more oscillators, a digital signal processor, a CODEC chipset, asubscriber identity module (SIM) card, memory, and so forth. RFcircuitry 108 optionally communicates with networks, such as theInternet, also referred to as the World Wide Web (WWW), an intranetand/or a wireless network, such as a cellular telephone network, awireless local area network (LAN) and/or a metropolitan area network(MAN), and other devices by wireless communication. The wirelesscommunication optionally uses any of a plurality of communicationsstandards, protocols and technologies, including but not limited toGlobal System for Mobile Communications (GSM), Enhanced Data GSMEnvironment (EDGE), high-speed downlink packet access (HSDPA),high-speed uplink packet access (HSUPA), Evolution, Data-Only (EV-DO),HSPA, HSPA+, Dual-Cell HSPA (DC-HSPDA), long term evolution (LTE), nearfield communication (NFC), wideband code division multiple access(W-CDMA), code division multiple access (CDMA), time division multipleaccess (TDMA), Bluetooth, Wireless Fidelity (Wi-Fi) (e.g., IEEE 802.11a,IEEE 802.11b, IEEE 802.11g and/or IEEE 802.11n), voice over InternetProtocol (VoIP), Wi-MAX, a protocol for e-mail (e.g., Internet messageaccess protocol (IMAP) and/or post office protocol (POP)), instantmessaging (e.g., extensible messaging and presence protocol (XMPP),Session Initiation Protocol for Instant Messaging and PresenceLeveraging Extensions (SIMPLE), Instant Messaging and Presence Service(IMPS)), and/or Short Message Service (SMS), or any other suitablecommunication protocol, including communication protocols not yetdeveloped as of the filing date of this document.

Audio circuitry 110, speaker 111, and microphone 113 provide an audiointerface between a user and device 100. Audio circuitry 110 receivesaudio data from peripherals interface 118, converts the audio data to anelectrical signal, and transmits the electrical signal to speaker 111.Speaker 111 converts the electrical signal to human-audible sound waves.Audio circuitry 110 also receives electrical signals converted bymicrophone 113 from sound waves. Audio circuitry 110 converts theelectrical signal to audio data and transmits the audio data toperipherals interface 118 for processing. Audio data is, optionally,retrieved from and/or transmitted to memory 102 and/or RF circuitry 108by peripherals interface 118. In some embodiments, audio circuitry 110also includes a headset jack (e.g., 212, FIG. 2). The headset jackprovides an interface between audio circuitry 110 and removable audioinput/output peripherals, such as output-only headphones or a headsetwith both output (e.g., a headphone for one or both ears) and input(e.g., a microphone).

I/O subsystem 106 couples input/output peripherals on device 100, suchas touch screen 112 and other input control devices 116, to peripheralsinterface 118. I/O subsystem 106 optionally includes display controller156, optical sensor controller 158, intensity sensor controller 159,haptic feedback controller 161 and one or more input controllers 160 forother input or control devices. The one or more input controllers 160receive/send electrical signals from/to other input or control devices116. The other input control devices 116 optionally include physicalbuttons (e.g., push buttons, rocker buttons, etc.), dials, sliderswitches, joysticks, click wheels, and so forth. In some alternateembodiments, input controller(s) 160 are, optionally, coupled to any (ornone) of the following: a keyboard, infrared port, USB port, and apointer device such as a mouse. The one or more buttons (e.g., 208, FIG.2) optionally include an up/down button for volume control of speaker111 and/or microphone 113. The one or more buttons optionally include apush button (e.g., 206, FIG. 2).

Touch-sensitive display 112 provides an input interface and an outputinterface between the device and a user. Display controller 156 receivesand/or sends electrical signals from/to touch screen 112. Touch screen112 displays visual output to the user. The visual output optionallyincludes graphics, text, icons, video, and any combination thereof(collectively termed “graphics”). In some embodiments, some or all ofthe visual output corresponds to user-interface objects.

Touch screen 112 has a touch-sensitive surface, sensor or set of sensorsthat accepts input from the user based on haptic and/or tactile contact.Touch screen 112 and display controller 156 (along with any associatedmodules and/or sets of instructions in memory 102) detect contact (andany movement or breaking of the contact) on touch screen 112 andconverts the detected contact into interaction with user-interfaceobjects (e.g., one or more soft keys, icons, web pages or images) thatare displayed on touch screen 112. In an exemplary embodiment, a pointof contact between touch screen 112 and the user corresponds to a fingerof the user.

Touch screen 112 optionally uses LCD (liquid crystal display)technology, LPD (light emitting polymer display) technology, or LED(light emitting diode) technology, although other display technologiesare used in other embodiments. Touch screen 112 and display controller156 optionally detect contact and any movement or breaking thereof usingany of a plurality of touch sensing technologies now known or laterdeveloped, including but not limited to capacitive, resistive, infrared,and surface acoustic wave technologies, as well as other proximitysensor arrays or other elements for determining one or more points ofcontact with touch screen 112. In an exemplary embodiment, projectedmutual capacitance sensing technology is used, such as that found in theiPhone®, iPod Touch®, and iPad® from Apple Inc. of Cupertino, Calif.

Touch screen 112 optionally has a video resolution in excess of 100 dpi.In some embodiments, the touch screen has a video resolution ofapproximately 160 dpi. The user optionally makes contact with touchscreen 112 using any suitable object or appendage, such as a stylus, afinger, and so forth. In some embodiments, the user interface isdesigned to work primarily with finger-based contacts and gestures,which can be less precise than stylus-based input due to the larger areaof contact of a finger on the touch screen. In some embodiments, thedevice translates the rough finger-based input into a precisepointer/cursor position or command for performing the actions desired bythe user.

In some embodiments, in addition to the touch screen, device 100optionally includes a touchpad (not shown) for activating ordeactivating particular functions. In some embodiments, the touchpad isa touch-sensitive area of the device that, unlike the touch screen, doesnot display visual output. The touchpad is, optionally, atouch-sensitive surface that is separate from touch screen 112 or anextension of the touch-sensitive surface formed by the touch screen.

Device 100 also includes power system 162 for powering the variouscomponents. Power system 162 optionally includes a power managementsystem, one or more power sources (e.g., battery, alternating current(AC)), a recharging system, a power failure detection circuit, a powerconverter or inverter, a power status indicator (e.g., a light-emittingdiode (LED)) and any other components associated with the generation,management and distribution of power in portable devices.

Device 100 optionally also includes one or more optical sensors 164.FIG. 1A shows an optical sensor coupled to optical sensor controller 158in I/O subsystem 106. Optical sensor 164 optionally includescharge-coupled device (CCD) or complementary metal-oxide semiconductor(CMOS) phototransistors. Optical sensor 164 receives light from theenvironment, projected through one or more lens, and converts the lightto data representing an image. In conjunction with imaging module 143(also called a camera module), optical sensor 164 optionally capturesstill images or video. In some embodiments, an optical sensor is locatedon the back of device 100, opposite touch screen display 112 on thefront of the device, so that the touch screen display is enabled for useas a viewfinder for still and/or video image acquisition. In someembodiments, another optical sensor is located on the front of thedevice so that the user's image is, optionally, obtained forvideoconferencing while the user views the other video conferenceparticipants on the touch screen display.

Device 100 optionally also includes one or more contact intensitysensors 165. FIG. 1A shows a contact intensity sensor coupled tointensity sensor controller 159 in I/O subsystem 106. Contact intensitysensor 165 optionally includes one or more piezoresistive strain gauges,capacitive force sensors, electric force sensors, piezoelectric forcesensors, optical force sensors, capacitive touch-sensitive surfaces, orother intensity sensors (e.g., sensors used to measure the force (orpressure) of a contact on a touch-sensitive surface). Contact intensitysensor 165 receives contact intensity information (e.g., pressureinformation or a proxy for pressure information) from the environment.In some embodiments, at least one contact intensity sensor is collocatedwith, or proximate to, a touch-sensitive surface (e.g., touch-sensitivedisplay system 112). In some embodiments, at least one contact intensitysensor is located on the back of device 100, opposite touch screendisplay 112 which is located on the front of device 100.

Device 100 optionally also includes one or more proximity sensors 166.FIG. 1A shows proximity sensor 166 coupled to peripherals interface 118.Alternately, proximity sensor 166 is coupled to input controller 160 inI/O subsystem 106. In some embodiments, the proximity sensor turns offand disables touch screen 112 when the multifunction device is placednear the user's ear (e.g., when the user is making a phone call).

Device 100 optionally also includes one or more tactile outputgenerators 167. FIG. 1A shows a tactile output generator coupled tohaptic feedback controller 161 in I/O subsystem 106. Tactile outputgenerator 167 optionally includes one or more electroacoustic devicessuch as speakers or other audio components and/or electromechanicaldevices that convert energy into linear motion such as a motor,solenoid, electroactive polymer, piezoelectric actuator, electrostaticactuator, or other tactile output generating component (e.g., acomponent that converts electrical signals into tactile outputs on thedevice). Contact intensity sensor 165 receives tactile feedbackgeneration instructions from haptic feedback module 133 and generatestactile outputs on device 100 that are capable of being sensed by a userof device 100. In some embodiments, at least one tactile outputgenerator is collocated with, or proximate to, a touch-sensitive surface(e.g., touch-sensitive display system 112) and, optionally, generates atactile output by moving the touch-sensitive surface vertically (e.g.,in/out of a surface of device 100) or laterally (e.g., back and forth inthe same plane as a surface of device 100). In some embodiments, atleast one tactile output generator sensor is located on the back ofdevice 100, opposite touch screen display 112 which is located on thefront of device 100.

Device 100 optionally also includes one or more accelerometers 168. FIG.1A shows accelerometer 168 coupled to peripherals interface 118.Alternately, accelerometer 168 is, optionally, coupled to an inputcontroller 160 in I/O subsystem 106. In some embodiments, information isdisplayed on the touch screen display in a portrait view or a landscapeview based on an analysis of data received from the one or moreaccelerometers. Device 100 optionally includes, in addition toaccelerometer(s) 168, a magnetometer (not shown) and a GPS (or GLONASSor other global navigation system) receiver (not shown) for obtaininginformation concerning the location and orientation (e.g., portrait orlandscape) of device 100.

In some embodiments, the software components stored in memory 102include operating system 126, communication module (or set ofinstructions) 128, contact/motion module (or set of instructions) 130,graphics module (or set of instructions) 132, text input module (or setof instructions) 134, Global Positioning System (GPS) module (or set ofinstructions) 135, and applications (or sets of instructions) 136.Furthermore, in some embodiments memory 102 stores device/globalinternal state 157, as shown in FIGS. 1A and 3. Device/global internalstate 157 includes one or more of: active application state, indicatingwhich applications, if any, are currently active; display state,indicating what applications, views or other information occupy variousregions of touch screen display 112; sensor state, including informationobtained from the device's various sensors and input control devices116; and location information concerning the device's location and/orattitude.

Operating system 126 (e.g., Darwin, RTXC, LINUX, UNIX, OS X, WINDOWS, oran embedded operating system such as VxWorks) includes various softwarecomponents and/or drivers for controlling and managing general systemtasks (e.g., memory management, storage device control, powermanagement, etc.) and facilitates communication between various hardwareand software components.

Communication module 128 facilitates communication with other devicesover one or more external ports 124 and also includes various softwarecomponents for handling data received by RF circuitry 108 and/orexternal port 124. External port 124 (e.g., Universal Serial Bus (USB),FIREWIRE, etc.) is adapted for coupling directly to other devices orindirectly over a network (e.g., the Internet, wireless LAN, etc.). Insome embodiments, the external port is a multi-pin (e.g., 30-pin)connector that is the same as, or similar to and/or compatible with the30-pin connector used on iPod (trademark of Apple Inc.) devices.

Contact/motion module 130 optionally detects contact with touch screen112 (in conjunction with display controller 156) and other touchsensitive devices (e.g., a touchpad or physical click wheel).Contact/motion module 130 includes various software components forperforming various operations related to detection of contact, such asdetermining if contact has occurred (e.g., detecting a finger-downevent), determining an intensity of the contact (e.g., the force orpressure of the contact or a substitute for the force or pressure of thecontact), determining if there is movement of the contact and trackingthe movement across the touch-sensitive surface (e.g., detecting one ormore finger-dragging events), and determining if the contact has ceased(e.g., detecting a finger-up event or a break in contact).Contact/motion module 130 receives contact data from the touch-sensitivesurface. Determining movement of the point of contact, which isrepresented by a series of contact data, optionally includes determiningspeed (magnitude), velocity (magnitude and direction), and/or anacceleration (a change in magnitude and/or direction) of the point ofcontact. These operations are, optionally, applied to single contacts(e.g., one finger contacts) or to multiple simultaneous contacts (e.g.,“multitouch”/multiple finger contacts). In some embodiments,contact/motion module 130 and display controller 156 detect contact on atouchpad.

In some embodiments, contact/motion module 130 uses a set of one or moreintensity thresholds to determine whether an operation has beenperformed by a user (e.g., to determine whether a user has “clicked” onan icon). In some embodiments at least a subset of the intensitythresholds are determined in accordance with software parameters (e.g.,the intensity thresholds are not determined by the activation thresholdsof particular physical actuators and can be adjusted without changingthe physical hardware of device 100). For example, a mouse “click”threshold of a trackpad or touch screen display can be set to any of alarge range of predefined thresholds values without changing thetrackpad or touch screen display hardware. Additionally, in someimplementations a user of the device is provided with software settingsfor adjusting one or more of the set of intensity thresholds (e.g., byadjusting individual intensity thresholds and/or by adjusting aplurality of intensity thresholds at once with a system-level click“intensity” parameter).

Contact/motion module 130 optionally detects a gesture input by a user.Different gestures on the touch-sensitive surface have different contactpatterns (e.g., different motions, timings, and/or intensities ofdetected contacts). Thus, a gesture is, optionally, detected bydetecting a particular contact pattern. For example, detecting a fingertap gesture includes detecting a finger-down event followed by detectinga finger-up (lift off) event at the same position (or substantially thesame position) as the finger-down event (e.g., at the position of anicon). As another example, detecting a finger swipe gesture on thetouch-sensitive surface includes detecting a finger-down event followedby detecting one or more finger-dragging events, and subsequentlyfollowed by detecting a finger-up (lift off) event.

Graphics module 132 includes various known software components forrendering and displaying graphics on touch screen 112 or other display,including components for changing the visual impact (e.g., brightness,transparency, saturation, contrast or other visual property) of graphicsthat are displayed. As used herein, the term “graphics” includes anyobject that can be displayed to a user, including without limitationtext, web pages, icons (such as user-interface objects including softkeys), digital images, videos, animations and the like.

In some embodiments, graphics module 132 stores data representinggraphics to be used. Each graphic is, optionally, assigned acorresponding code. Graphics module 132 receives, from applicationsetc., one or more codes specifying graphics to be displayed along with,if necessary, coordinate data and other graphic property data, and thengenerates screen image data to output to display controller 156.

Haptic feedback module 133 includes various software components forgenerating instructions used by tactile output generator(s) 167 toproduce tactile outputs at one or more locations on device 100 inresponse to user interactions with device 100.

Text input module 134, which is, optionally, a component of graphicsmodule 132, provides soft keyboards for entering text in variousapplications (e.g., contacts 137, e-mail 140, IM 141, browser 147, andany other application that needs text input).

GPS module 135 determines the location of the device and provides thisinformation for use in various applications (e.g., to telephone 138 foruse in location-based dialing, to camera 143 as picture/video metadata,and to applications that provide location-based services such as weatherwidgets, local yellow page widgets, and map/navigation widgets).

Applications 136 optionally include the following modules (or sets ofinstructions), or a subset or superset thereof:

-   -   contacts module 137 (sometimes called an address book or contact        list);    -   telephone module 138;    -   video conferencing module 139;    -   e-mail client module 140;    -   instant messaging (IM) module 141;    -   workout support module 142;    -   camera module 143 for still and/or video images;    -   image management module 144;    -   browser module 147;    -   calendar module 148;    -   widget modules 149, which optionally include one or more of:        weather widget 149-1, stocks widget 149-2, calculator widget        149-3, alarm clock widget 149-4, dictionary widget 149-5, and        other widgets obtained by the user, as well as user-created        widgets 149-6;    -   widget creator module 150 for making user-created widgets 149-6;    -   search module 151;    -   video and music player module 152, which is, optionally, made up        of a video player module and a music player module;    -   notes module 153;    -   map module 154; and/or    -   online video module 155.

Examples of other applications 136 that are, optionally, stored inmemory 102 include other word processing applications, other imageediting applications, drawing applications, presentation applications,JAVA-enabled applications, encryption, digital rights management, voicerecognition, and voice replication.

In conjunction with touch screen 112, display controller 156, contactmodule 130, graphics module 132, and text input module 134, contactsmodule 137 are, optionally, used to manage an address book or contactlist (e.g., stored in application internal state 192 of contacts module137 in memory 102 or memory 370), including: adding name(s) to theaddress book; deleting name(s) from the address book; associatingtelephone number(s), e-mail address(es), physical address(es) or otherinformation with a name; associating an image with a name; categorizingand sorting names; providing telephone numbers or e-mail addresses toinitiate and/or facilitate communications by telephone 138, videoconference 139, e-mail 140, or 1M 141; and so forth.

In conjunction with RF circuitry 108, audio circuitry 110, speaker 111,microphone 113, touch screen 112, display controller 156, contact module130, graphics module 132, and text input module 134, telephone module138 are, optionally, used to enter a sequence of characterscorresponding to a telephone number, access one or more telephonenumbers in address book 137, modify a telephone number that has beenentered, dial a respective telephone number, conduct a conversation anddisconnect or hang up when the conversation is completed. As notedabove, the wireless communication optionally uses any of a plurality ofcommunications standards, protocols and technologies.

In conjunction with RF circuitry 108, audio circuitry 110, speaker 111,microphone 113, touch screen 112, display controller 156, optical sensor164, optical sensor controller 158, contact module 130, graphics module132, text input module 134, contact list 137, and telephone module 138,videoconferencing module 139 includes executable instructions toinitiate, conduct, and terminate a video conference between a user andone or more other participants in accordance with user instructions.

In conjunction with RF circuitry 108, touch screen 112, displaycontroller 156, contact module 130, graphics module 132, and text inputmodule 134, e-mail client module 140 includes executable instructions tocreate, send, receive, and manage e-mail in response to userinstructions. In conjunction with image management module 144, e-mailclient module 140 makes it very easy to create and send e-mails withstill or video images taken with camera module 143.

In conjunction with RF circuitry 108, touch screen 112, displaycontroller 156, contact module 130, graphics module 132, and text inputmodule 134, the instant messaging module 141 includes executableinstructions to enter a sequence of characters corresponding to aninstant message, to modify previously entered characters, to transmit arespective instant message (for example, using a Short Message Service(SMS) or Multimedia Message Service (MIMS) protocol for telephony-basedinstant messages or using XMPP, SIMPLE, or IMPS for Internet-basedinstant messages), to receive instant messages and to view receivedinstant messages. In some embodiments, transmitted and/or receivedinstant messages optionally include graphics, photos, audio files, videofiles and/or other attachments as are supported in a MIMS and/or anEnhanced Messaging Service (EMS). As used herein, “instant messaging”refers to both telephony-based messages (e.g., messages sent using SMSor MIMS) and Internet-based messages (e.g., messages sent using XMPP,SIMPLE, or IMPS).

In conjunction with RF circuitry 108, touch screen 112, displaycontroller 156, contact module 130, graphics module 132, text inputmodule 134, GPS module 135, map module 154, and music player module 146,workout support module 142 includes executable instructions to createworkouts (e.g., with time, distance, and/or calorie burning goals);communicate with workout sensors (sports devices); receive workoutsensor data; calibrate sensors used to monitor a workout; select andplay music for a workout; and display, store and transmit workout data.

In conjunction with touch screen 112, display controller 156, opticalsensor(s) 164, optical sensor controller 158, contact module 130,graphics module 132, and image management module 144, camera module 143includes executable instructions to capture still images or video(including a video stream) and store them into memory 102, modifycharacteristics of a still image or video, or delete a still image orvideo from memory 102.

In conjunction with touch screen 112, display controller 156, contactmodule 130, graphics module 132, text input module 134, and cameramodule 143, image management module 144 includes executable instructionsto arrange, modify (e.g., edit), or otherwise manipulate, label, delete,present (e.g., in a digital slide show or album), and store still and/orvideo images.

In conjunction with RF circuitry 108, touch screen 112, display systemcontroller 156, contact module 130, graphics module 132, and text inputmodule 134, browser module 147 includes executable instructions tobrowse the Internet in accordance with user instructions, includingsearching, linking to, receiving, and displaying web pages or portionsthereof, as well as attachments and other files linked to web pages.

In conjunction with RF circuitry 108, touch screen 112, display systemcontroller 156, contact module 130, graphics module 132, text inputmodule 134, e-mail client module 140, and browser module 147, calendarmodule 148 includes executable instructions to create, display, modify,and store calendars and data associated with calendars (e.g., calendarentries, to do lists, etc.) in accordance with user instructions.

In conjunction with RF circuitry 108, touch screen 112, display systemcontroller 156, contact module 130, graphics module 132, text inputmodule 134, and browser module 147, widget modules 149 aremini-applications that are, optionally, downloaded and used by a user(e.g., weather widget 149-1, stocks widget 149-2, calculator widget149-3, alarm clock widget 149-4, and dictionary widget 149-5) or createdby the user (e.g., user-created widget 149-6). In some embodiments, awidget includes an HTML (Hypertext Markup Language) file, a CSS(Cascading Style Sheets) file, and a JavaScript file. In someembodiments, a widget includes an XML (Extensible Markup Language) fileand a JavaScript file (e.g., Yahoo! Widgets).

In conjunction with RF circuitry 108, touch screen 112, display systemcontroller 156, contact module 130, graphics module 132, text inputmodule 134, and browser module 147, the widget creator module 150 are,optionally, used by a user to create widgets (e.g., turning auser-specified portion of a web page into a widget).

In conjunction with touch screen 112, display system controller 156,contact module 130, graphics module 132, and text input module 134,search module 151 includes executable instructions to search for text,music, sound, image, video, and/or other files in memory 102 that matchone or more search criteria (e.g., one or more user-specified searchterms) in accordance with user instructions.

In conjunction with touch screen 112, display system controller 156,contact module 130, graphics module 132, audio circuitry 110, speaker111, RF circuitry 108, and browser module 147, video and music playermodule 152 includes executable instructions that allow the user todownload and play back recorded music and other sound files stored inone or more file formats, such as MP3 or AAC files, and executableinstructions to display, present or otherwise play back videos (e.g., ontouch screen 112 or on an external, connected display via external port124). In some embodiments, device 100 optionally includes thefunctionality of an MP3 player, such as an iPod (trademark of AppleInc.).

In conjunction with touch screen 112, display controller 156, contactmodule 130, graphics module 132, and text input module 134, notes module153 includes executable instructions to create and manage notes, to dolists, and the like in accordance with user instructions.

In conjunction with RF circuitry 108, touch screen 112, display systemcontroller 156, contact module 130, graphics module 132, text inputmodule 134, GPS module 135, and browser module 147, map module 154 are,optionally, used to receive, display, modify, and store maps and dataassociated with maps (e.g., driving directions; data on stores and otherpoints of interest at or near a particular location; and otherlocation-based data) in accordance with user instructions.

In conjunction with touch screen 112, display system controller 156,contact module 130, graphics module 132, audio circuitry 110, speaker111, RF circuitry 108, text input module 134, e-mail client module 140,and browser module 147, online video module 155 includes instructionsthat allow the user to access, browse, receive (e.g., by streamingand/or download), play back (e.g., on the touch screen or on anexternal, connected display via external port 124), send an e-mail witha link to a particular online video, and otherwise manage online videosin one or more file formats, such as H.264. In some embodiments, instantmessaging module 141, rather than e-mail client module 140, is used tosend a link to a particular online video.

Each of the above identified modules and applications correspond to aset of executable instructions for performing one or more functionsdescribed above and the methods described in this application (e.g., thecomputer-implemented methods and other information processing methodsdescribed herein). These modules (i.e., sets of instructions) need notbe implemented as separate software programs, procedures or modules, andthus various subsets of these modules are, optionally, combined orotherwise re-arranged in various embodiments. In some embodiments,memory 102 optionally stores a subset of the modules and data structuresidentified above. Furthermore, memory 102 optionally stores additionalmodules and data structures not described above.

In some embodiments, device 100 is a device where operation of apredefined set of functions on the device is performed exclusivelythrough a touch screen and/or a touchpad. By using a touch screen and/ora touchpad as the primary input control device for operation of device100, the number of physical input control devices (such as push buttons,dials, and the like) on device 100 is, optionally, reduced.

The predefined set of functions that are performed exclusively through atouch screen and/or a touchpad optionally include navigation betweenuser interfaces. In some embodiments, the touchpad, when touched by theuser, navigates device 100 to a main, home, or root menu from any userinterface that is displayed on device 100. In such embodiments, a “menubutton” is implemented using a touchpad. In some other embodiments, themenu button is a physical push button or other physical input controldevice instead of a touchpad.

FIG. 1B is a block diagram illustrating exemplary components for eventhandling in accordance with some embodiments. In some embodiments,memory 102 (in FIG. 1A) or 370 (FIG. 3) includes event sorter 170 (e.g.,in operating system 126) and a respective application 136-1 (e.g., anyof the aforementioned applications 137-13, 155, 380-390).

Event sorter 170 receives event information and determines theapplication 136-1 and application view 191 of application 136-1 to whichto deliver the event information. Event sorter 170 includes eventmonitor 171 and event dispatcher module 174. In some embodiments,application 136-1 includes application internal state 192, whichindicates the current application view(s) displayed on touch sensitivedisplay 112 when the application is active or executing. In someembodiments, device/global internal state 157 is used by event sorter170 to determine which application(s) is (are) currently active, andapplication internal state 192 is used by event sorter 170 to determineapplication views 191 to which to deliver event information.

In some embodiments, application internal state 192 includes additionalinformation, such as one or more of: resume information to be used whenapplication 136-1 resumes execution, user interface state informationthat indicates information being displayed or that is ready for displayby application 136-1, a state queue for enabling the user to go back toa prior state or view of application 136-1, and a redo/undo queue ofprevious actions taken by the user.

Event monitor 171 receives event information from peripherals interface118. Event information includes information about a sub-event (e.g., auser touch on touch-sensitive display 112, as part of a multi-touchgesture). Peripherals interface 118 transmits information it receivesfrom I/O subsystem 106 or a sensor, such as proximity sensor 166,accelerometer(s) 168, and/or microphone 113 (through audio circuitry110). Information that peripherals interface 118 receives from I/Osubsystem 106 includes information from touch-sensitive display 112 or atouch-sensitive surface.

In some embodiments, event monitor 171 sends requests to the peripheralsinterface 118 at predetermined intervals. In response, peripheralsinterface 118 transmits event information. In other embodiments,peripheral interface 118 transmits event information only when there isa significant event (e.g., receiving an input above a predeterminednoise threshold and/or for more than a predetermined duration).

In some embodiments, event sorter 170 also includes a hit viewdetermination module 172 and/or an active event recognizer determinationmodule 173.

Hit view determination module 172 provides software procedures fordetermining where a sub-event has taken place within one or more views,when touch sensitive display 112 displays more than one view. Views aremade up of controls and other elements that a user can see on thedisplay.

Another aspect of the user interface associated with an application is aset of views, sometimes herein called application views or userinterface windows, in which information is displayed and touch-basedgestures occur. The application views (of a respective application) inwhich a touch is detected optionally correspond to programmatic levelswithin a programmatic or view hierarchy of the application. For example,the lowest level view in which a touch is detected is, optionally,called the hit view, and the set of events that are recognized as properinputs are, optionally, determined based, at least in part, on the hitview of the initial touch that begins a touch-based gesture.

Hit view determination module 172 receives information related tosub-events of a touch-based gesture. When an application has multipleviews organized in a hierarchy, hit view determination module 172identifies a hit view as the lowest view in the hierarchy which shouldhandle the sub-event. In most circumstances, the hit view is the lowestlevel view in which an initiating sub-event occurs (i.e., the firstsub-event in the sequence of sub-events that form an event or potentialevent). Once the hit view is identified by the hit view determinationmodule, the hit view typically receives all sub-events related to thesame touch or input source for which it was identified as the hit view.

Active event recognizer determination module 173 determines which viewor views within a view hierarchy should receive a particular sequence ofsub-events. In some embodiments, active event recognizer determinationmodule 173 determines that only the hit view should receive a particularsequence of sub-events. In other embodiments, active event recognizerdetermination module 173 determines that all views that include thephysical location of a sub-event are actively involved views, andtherefore determines that all actively involved views should receive aparticular sequence of sub-events. In other embodiments, even if touchsub-events were entirely confined to the area associated with oneparticular view, views higher in the hierarchy would still remain asactively involved views.

Event dispatcher module 174 dispatches the event information to an eventrecognizer (e.g., event recognizer 180). In embodiments including activeevent recognizer determination module 173, event dispatcher module 174delivers the event information to an event recognizer determined byactive event recognizer determination module 173. In some embodiments,event dispatcher module 174 stores in an event queue the eventinformation, which is retrieved by a respective event receiver module182.

In some embodiments, operating system 126 includes event sorter 170.Alternatively, application 136-1 includes event sorter 170. In yet otherembodiments, event sorter 170 is a stand-alone module, or a part ofanother module stored in memory 102, such as contact/motion module 130.

In some embodiments, application 136-1 includes a plurality of eventhandlers 190 and one or more application views 191, each of whichincludes instructions for handling touch events that occur within arespective view of the application's user interface. Each applicationview 191 of the application 136-1 includes one or more event recognizers180. Typically, a respective application view 191 includes a pluralityof event recognizers 180. In other embodiments, one or more of eventrecognizers 180 are part of a separate module, such as a user interfacekit (not shown) or a higher level object from which application 136-1inherits methods and other properties. In some embodiments, a respectiveevent handler 190 includes one or more of: data updater 176, objectupdater 177, GUI updater 178, and/or event data 179 received from eventsorter 170. Event handler 190 optionally utilizes or calls data updater176, object updater 177 or GUI updater 178 to update the applicationinternal state 192. Alternatively, one or more of the application views191 includes one or more respective event handlers 190. Also, in someembodiments, one or more of data updater 176, object updater 177, andGUI updater 178 are included in a respective application view 191.

A respective event recognizer 180 receives event information (e.g.,event data 179) from event sorter 170, and identifies an event from theevent information. Event recognizer 180 includes event receiver 182 andevent comparator 184. In some embodiments, event recognizer 180 alsoincludes at least a subset of: metadata 183, and event deliveryinstructions 188 (which optionally include sub-event deliveryinstructions).

Event receiver 182 receives event information from event sorter 170. Theevent information includes information about a sub-event, for example, atouch or a touch movement. Depending on the sub-event, the eventinformation also includes additional information, such as location ofthe sub-event. When the sub-event concerns motion of a touch, the eventinformation optionally also includes speed and direction of thesub-event. In some embodiments, events include rotation of the devicefrom one orientation to another (e.g., from a portrait orientation to alandscape orientation, or vice versa), and the event informationincludes corresponding information about the current orientation (alsocalled device attitude) of the device.

Event comparator 184 compares the event information to predefined eventor sub-event definitions and, based on the comparison, determines anevent or sub-event, or determines or updates the state of an event orsub-event. In some embodiments, event comparator 184 includes eventdefinitions 186. Event definitions 186 contain definitions of events(e.g., predefined sequences of sub-events), for example, event 1(187-1),event 2 (187-2), and others. In some embodiments, sub-events in an event187 include, for example, touch begin, touch end, touch movement, touchcancellation, and multiple touching. In one example, the definition forevent 1 (187-1) is a double tap on a displayed object. The double tap,for example, comprises a first touch (touch begin) on the displayedobject for a predetermined phase, a first lift-off (touch end) for apredetermined phase, a second touch (touch begin) on the displayedobject for a predetermined phase, and a second lift-off (touch end) fora predetermined phase. In another example, the definition for event 2(187-2) is a dragging on a displayed object. The dragging, for example,comprises a touch (or contact) on the displayed object for apredetermined phase, a movement of the touch across touch-sensitivedisplay 112, and lift-off of the touch (touch end). In some embodiments,the event also includes information for one or more associated eventhandlers 190.

In some embodiments, event definition 187 includes a definition of anevent for a respective user-interface object. In some embodiments, eventcomparator 184 performs a hit test to determine which user-interfaceobject is associated with a sub-event. For example, in an applicationview in which three user-interface objects are displayed ontouch-sensitive display 112, when a touch is detected on touch-sensitivedisplay 112, event comparator 184 performs a hit test to determine whichof the three user-interface objects is associated with the touch(sub-event). If each displayed object is associated with a respectiveevent handler 190, the event comparator uses the result of the hit testto determine which event handler 190 should be activated. For example,event comparator 184 selects an event handler associated with thesub-event and the object triggering the hit test.

In some embodiments, the definition for a respective event 187 alsoincludes delayed actions that delay delivery of the event informationuntil after it has been determined whether the sequence of sub-eventsdoes or does not correspond to the event recognizer's event type.

When a respective event recognizer 180 determines that the series ofsub-events do not match any of the events in event definitions 186, therespective event recognizer 180 enters an event impossible, eventfailed, or event ended state, after which it disregards subsequentsub-events of the touch-based gesture. In this situation, other eventrecognizers, if any, that remain active for the hit view continue totrack and process sub-events of an ongoing touch-based gesture.

In some embodiments, a respective event recognizer 180 includes metadata183 with configurable properties, flags, and/or lists that indicate howthe event delivery system should perform sub-event delivery to activelyinvolved event recognizers. In some embodiments, metadata 183 includesconfigurable properties, flags, and/or lists that indicate how eventrecognizers interact, or are enabled to interact, with one another. Insome embodiments, metadata 183 includes configurable properties, flags,and/or lists that indicate whether sub-events are delivered to varyinglevels in the view or programmatic hierarchy.

In some embodiments, a respective event recognizer 180 activates eventhandler 190 associated with an event when one or more particularsub-events of an event are recognized. In some embodiments, a respectiveevent recognizer 180 delivers event information associated with theevent to event handler 190. Activating an event handler 190 is distinctfrom sending (and deferred sending) sub-events to a respective hit view.In some embodiments, event recognizer 180 throws a flag associated withthe recognized event, and event handler 190 associated with the flagcatches the flag and performs a predefined process.

In some embodiments, event delivery instructions 188 include sub-eventdelivery instructions that deliver event information about a sub-eventwithout activating an event handler. Instead, the sub-event deliveryinstructions deliver event information to event handlers associated withthe series of sub-events or to actively involved views. Event handlersassociated with the series of sub-events or with actively involved viewsreceive the event information and perform a predetermined process.

In some embodiments, data updater 176 creates and updates data used inapplication 136-1. For example, data updater 176 updates the telephonenumber used in contacts module 137, or stores a video file used in videoplayer module 145. In some embodiments, object updater 177 creates andupdates objects used in application 136-1. For example, object updater176 creates a new user-interface object or updates the position of auser-interface object. GUI updater 178 updates the GUI. For example, GUIupdater 178 prepares display information and sends it to graphics module132 for display on a touch-sensitive display.

In some embodiments, event handler(s) 190 includes or has access to dataupdater 176, object updater 177, and GUI updater 178. In someembodiments, data updater 176, object updater 177, and GUI updater 178are included in a single module of a respective application 136-1 orapplication view 191. In other embodiments, they are included in two ormore software modules.

It shall be understood that the foregoing discussion regarding eventhandling of user touches on touch-sensitive displays also applies toother forms of user inputs to operate multifunction devices 100 withinput-devices, not all of which are initiated on touch screens. Forexample, mouse movement and mouse button presses, optionally coordinatedwith single or multiple keyboard presses or holds; contact movementssuch as taps, drags, scrolls, etc., on touch-pads; pen stylus inputs;movement of the device; oral instructions; detected eye movements;biometric inputs; and/or any combination thereof are optionally utilizedas inputs corresponding to sub-events which define an event to berecognized.

FIG. 2 illustrates a portable multifunction device 100 having a touchscreen 112 in accordance with some embodiments. The touch screenoptionally displays one or more graphics within user interface (UI) 200.In this embodiment, as well as others described below, a user is enabledto select one or more of the graphics by making a gesture on thegraphics, for example, with one or more fingers 202 (not drawn to scalein the figure) or one or more styluses 203 (not drawn to scale in thefigure). In some embodiments, selection of one or more graphics occurswhen the user breaks contact with the one or more graphics. In someembodiments, the gesture optionally includes one or more taps, one ormore swipes (from left to right, right to left, upward and/or downward)and/or a rolling of a finger (from right to left, left to right, upwardand/or downward) that has made contact with device 100. In someimplementations or circumstances, inadvertent contact with a graphicdoes not select the graphic. For example, a swipe gesture that sweepsover an application icon optionally does not select the correspondingapplication when the gesture corresponding to selection is a tap.

Device 100 optionally also includes one or more physical buttons, suchas “home” or menu button 204. As described previously, menu button 204is, optionally, used to navigate to any application 136 in a set ofapplications that are, optionally executed on device 100. Alternatively,in some embodiments, the menu button is implemented as a soft key in aGUI displayed on touch screen 112.

In one embodiment, device 100 includes touch screen 112, menu button204, push button 206 for powering the device on/off and locking thedevice, volume adjustment button(s) 208, Subscriber Identity Module(SIM) card slot 210, head set jack 212, and docking/charging externalport 124. Push button 206 is, optionally, used to turn the power on/offon the device by depressing the button and holding the button in thedepressed state for a predefined time interval; to lock the device bydepressing the button and releasing the button before the predefinedtime interval has elapsed; and/or to unlock the device or initiate anunlock process. In an alternative embodiment, device 100 also acceptsverbal input for activation or deactivation of some functions throughmicrophone 113. Device 100 also, optionally, includes one or morecontact intensity sensors 165 for detecting intensity of contacts ontouch screen 112 and/or one or more tactile output generators 167 forgenerating tactile outputs for a user of device 100.

FIG. 3 is a block diagram of an exemplary multifunction device with adisplay and a touch-sensitive surface in accordance with someembodiments. Device 300 need not be portable. In some embodiments,device 300 is a laptop computer, a desktop computer, a tablet computer,a multimedia player device, a navigation device, an educational device(such as a child's learning toy), a gaming system, or a control device(e.g., a home or industrial controller). Device 300 typically includesone or more processing units (CPU's) 310, one or more network or othercommunications interfaces 360, memory 370, and one or more communicationbuses 320 for interconnecting these components. Communication buses 320optionally include circuitry (sometimes called a chipset) thatinterconnects and controls communications between system components.Device 300 includes input/output (I/O) interface 330 comprising display340, which is typically a touch screen display. I/O interface 330 alsooptionally includes a keyboard and/or mouse (or other pointing device)350 and touchpad 355, tactile output generator 357 for generatingtactile outputs on device 300 (e.g., similar to tactile outputgenerator(s) 167 described above with reference to FIG. 1A), sensors 359(e.g., optical, acceleration, proximity, touch-sensitive, and/or contactintensity sensors similar to contact intensity sensor(s) 165 describedabove with reference to FIG. 1A). Memory 370 includes high-speed randomaccess memory, such as DRAM, SRAM, DDR RAM or other random access solidstate memory devices; and optionally includes non-volatile memory, suchas one or more magnetic disk storage devices, optical disk storagedevices, flash memory devices, or other non-volatile solid state storagedevices. Memory 370 optionally includes one or more storage devicesremotely located from CPU(s) 310. In some embodiments, memory 370 storesprograms, modules, and data structures analogous to the programs,modules, and data structures stored in memory 102 of portablemultifunction device 100 (FIG. 1A), or a subset thereof. Furthermore,memory 370 optionally stores additional programs, modules, and datastructures not present in memory 102 of portable multifunction device100. For example, memory 370 of device 300 optionally stores drawingmodule 380, presentation module 382, word processing module 384, website creation module 386, disk authoring module 388, and/or spreadsheetmodule 390, while memory 102 of portable multifunction device 100 (FIG.1A) optionally does not store these modules.

Each of the above identified elements in FIG. 3 are, optionally, storedin one or more of the previously mentioned memory devices. Each of theabove identified modules corresponds to a set of instructions forperforming a function described above. The above identified modules orprograms (i.e., sets of instructions) need not be implemented asseparate software programs, procedures or modules, and thus varioussubsets of these modules are, optionally, combined or otherwisere-arranged in various embodiments. In some embodiments, memory 370optionally stores a subset of the modules and data structures identifiedabove. Furthermore, memory 370 optionally stores additional modules anddata structures not described above.

Attention is now directed towards embodiments of user interfaces (“UI”)that is, optionally, implemented on portable multifunction device 100.

FIG. 4A illustrates an exemplary user interface for a menu ofapplications on portable multifunction device 100 in accordance withsome embodiments. Similar user interfaces are, optionally, implementedon device 300. In some embodiments, user interface 400 includes thefollowing elements, or a subset or superset thereof:

-   -   Signal strength indicator(s) 402 for wireless communication(s),        such as cellular and Wi-Fi signals;    -   Time 404;    -   Bluetooth indicator 405;    -   Battery status indicator 406;    -   Tray 408 with icons for frequently used applications, such as:        -   Icon 416 for telephone module 138, labeled “Phone,” which            optionally includes an indicator 414 of the number of missed            calls or voicemail messages;        -   Icon 418 for e-mail client module 140, labeled “Mail,” which            optionally includes an indicator 410 of the number of unread            e-mails;        -   Icon 420 for browser module 147, labeled “Browser;” and        -   Icon 422 for video and music player module 152, also            referred to as iPod (trademark of Apple Inc.) module 152,            labeled “iPod;” and    -   Icons for other applications, such as:        -   Icon 424 for IM module 141, labeled “Text;”        -   Icon 426 for calendar module 148, labeled “Calendar;”        -   Icon 428 for image management module 144, labeled “Photos;”        -   Icon 430 for camera module 143, labeled “Camera;”        -   Icon 432 for online video module 155, labeled “Online Video”        -   Icon 434 for stocks widget 149-2, labeled “Stocks;”        -   Icon 436 for map module 154, labeled “Map;”        -   Icon 438 for weather widget 149-1, labeled “Weather;”        -   Icon 440 for alarm clock widget 149-4, labeled “Clock;”        -   Icon 442 for workout support module 142, labeled “Workout            Support;”        -   Icon 444 for notes module 153, labeled “Notes;” and        -   Icon 446 for a settings application or module, which            provides access to settings for device 100 and its various            applications 136.

It should be noted that the icon labels illustrated in FIG. 4A aremerely exemplary. For example, icon 422 for video and music playermodule 152 are labeled “Music” or “Music Player.” Other labels are,optionally, used for various application icons. In some embodiments, alabel for a respective application icon includes a name of anapplication corresponding to the respective application icon. In someembodiments, a label for a particular application icon is distinct froma name of an application corresponding to the particular applicationicon.

FIG. 4B illustrates an exemplary user interface on a device (e.g.,device 300, FIG. 3) with a touch-sensitive surface 451 (e.g., a tabletor touchpad 355, FIG. 3) that is separate from the display 450 (e.g.,touch screen display 112). Device 300 also, optionally, includes one ormore contact intensity sensors (e.g., one or more of sensors 357) fordetecting intensity of contacts on touch-sensitive surface 451 and/orone or more tactile output generators 359 for generating tactile outputsfor a user of device 300.

Although some of the examples which follow will be given with referenceto inputs on touch screen display 112 (where the touch sensitive surfaceand the display are combined), in some embodiments, the device detectsinputs on a touch-sensitive surface that is separate from the display,as shown in FIG. 4B. In some embodiments the touch sensitive surface(e.g., 451 in FIG. 4B) has a primary axis (e.g., 452 in FIG. 4B) thatcorresponds to a primary axis (e.g., 453 in FIG. 4B) on the display(e.g., 450). In accordance with these embodiments, the device detectscontacts (e.g., 460 and 462 in FIG. 4B) with the touch-sensitive surface451 at locations that correspond to respective locations on the display(e.g., in FIG. 4B, 460 corresponds to 468 and 462 corresponds to 470).In this way, user inputs (e.g., contacts 460 and 462, and movementsthereof) detected by the device on the touch-sensitive surface (e.g.,451 in FIG. 4B) are used by the device to manipulate the user interfaceon the display (e.g., 450 in FIG. 4B) of the multifunction device whenthe touch-sensitive surface is separate from the display. It should beunderstood that similar methods are, optionally, used for other userinterfaces described herein.

Additionally, while the following examples are given primarily withreference to finger inputs (e.g., finger contacts, finger tap gestures,finger swipe gestures), it should be understood that, in someembodiments, one or more of the finger inputs are replaced with inputfrom another input device (e.g., a mouse based input or stylus input).For example, a swipe gesture is, optionally, replaced with a mouse click(e.g., instead of a contact) followed by movement of the cursor alongthe path of the swipe (e.g., instead of movement of the contact). Asanother example, a tap gesture is, optionally, replaced with a mouseclick while the cursor is located over the location of the tap gesture(e.g., instead of detection of the contact followed by ceasing to detectthe contact). Similarly, when multiple user inputs are simultaneouslydetected, it should be understood that multiple computer mice are,optionally, used simultaneously, or a mouse and finger contacts are,optionally, used simultaneously.

As used herein, the term “focus selector” refers to an input elementthat indicates a current part of a user interface with which a user isinteracting. In some implementations that include a cursor or otherlocation marker, the cursor acts as a “focus selector,” so that when aninput (e.g., a press input) is detected on a touch-sensitive surface(e.g., touchpad 355 in FIG. 3 or touch-sensitive surface 451 in FIG. 4B)while the cursor is over a particular user interface element (e.g., abutton, window, slider or other user interface element), the particularuser interface element is adjusted in accordance with the detectedinput. In some implementations that include a touch-screen display(e.g., touch-sensitive display system 112 in FIG. 1A or touch screen 112in FIG. 4A) that enables direct interaction with user interface elementson the touch-screen display, a detected contact on the touch-screen actsas a “focus selector,” so that when an input (e.g., a press input by thecontact) is detected on the touch-screen display at a location of aparticular user interface element (e.g., a button, window, slider orother user interface element), the particular user interface element isadjusted in accordance with the detected input. In some implementationsfocus is moved from one region of a user interface to another region ofthe user interface without corresponding movement of a cursor ormovement of a contact on a touch-screen display (e.g., by using a tabkey or arrow keys to move focus from one button to another button); inthese implementations, the focus selector moves in accordance withmovement of focus between different regions of the user interface.Without regard to the specific form taken by the focus selector, thefocus selector is generally the user interface element (or contact on atouch-screen display) that is controlled by the user so as tocommunicate the user's intended interaction with the user interface(e.g., by indicating, to the device, the element of the user interfacewith which the user is intending to interact). For example, the locationof a focus selector (e.g., a cursor, a contact or a selection box) overa respective button while a press input is detected on thetouch-sensitive surface (e.g., a touchpad or touch screen) will indicatethat the user is intending to activate the respective button (as opposedto other user interface elements shown on a display of the device).

User Interfaces and Associated Processes

Attention is now directed towards embodiments of user interfaces (“UI”)and associated processes that may be implemented on an electronic devicewith a display and a touch-sensitive surface, such as device 300 orportable multifunction device 100.

FIGS. 5A-5S illustrate exemplary user interfaces for organizing andpresenting a collection of media items in accordance with someembodiments. The user interfaces in these figures are used to illustratethe processes described below, including the processes in FIGS. 6A-6Eand 7A-7D.

FIG. 5A illustrates portable multifunction device 100 displaying aplurality of media items obtained from a collection of media items. FIG.5A illustrates a plurality of selectable multi-item events 502 a, 502 b,502 c, 502 d within an events view 503. In some embodiments, the deviceautomatically divides the collection of media items into multi-itemevents by determining one or more patterns in the collection of mediaitems and identifying transitions points in the collection of the mediaitems, where a transition point corresponds to a change in a pattern ofthe collection of media items. In some embodiments, the transition pointis based on a change in metadata (e.g., time, date, location, altitude,speed, network connections, weather, biometrics, facial recognition,etc.) between sequentially adjacent media items. FIG. 5A furtherillustrates a months affordance 512 which enables the device to displaya months view 513 (described in more detail below with reference to FIG.5H) in response to a tap gesture on the affordance 512.

In FIG. 5A, each of the plurality of events includes an associated eventtitle 506 (e.g., Sunday Brunch 506 a, Hawaii Vacation 506 b, New Year'sEve Party 506 c, and Cross Country Road Trip 506 d), event location(s)508 (e.g., San Jose 508 a and Oahu, Kauai, Maui 508 b), and one or morerepresentations of media items 510 (e.g., 510 a, 510 b, 510 c, 510 d)within the respective event. In some embodiments, the device isconfigured to automatically populate an event title and event locationfor a respective event in accordance with metadata associated with mediaitems within the respective event. FIG. 5A illustrates displaying theone or more representations of media items within the events at adetailed-granularity level. In some embodiments, a respectiverepresentation of a media item includes a thumbnail associated with aphoto or a still or a gif image associated with a video. In someembodiments, the event locations are truncated (e.g., event locations508 d), whereby less than all of the event locations associated with theevent are displayed. For example, frequently visited event locations aretruncated from the event location field 508 in favor of unique or lessfrequented event locations. FIG. 5A further illustrates detection of aswipe or drag gesture on touch screen 112, including movement of contact514 from position 514 a to position 514 b.

FIG. 5B illustrates scrolling the event view 503 upward in response todetecting the drag gesture with contact 514 in FIG. 5A (e.g., by anamount corresponding to the speed and/or amount of movement of contact514). In FIG. 5B, Event 502 e (e.g., related to My First Rodeo inSalinas) is displayed and event 502 a is no longer displayed. FIG. 5Bfurther illustrates detecting a tap gesture with contact 516 over arespective representation in the one or more representations of mediaitems 510 b related to event 502 b on touch screen 112.

FIG. 5C illustrates displaying event 502 b entitled Hawaii Vacation inresponse to detecting the tap gesture including contact 516 in FIG. 5B.In some embodiments, a tap gesture on a representation of a media itemcauses the device to display an enlarged representation of the mediaitem, while a tap gesture at a location corresponding to a header of anevent (e.g., the white space above the representations 510 b) causes arepresentation of the event (or one or more sub-events) to be displayed.FIG. 5C illustrates a plurality of sub-events 518 a, 518 b, 518 c withinevent 502 b. In some embodiments, the device automatically divides itemswithin an event into sub-events based on metadata associated with themedia items in the event. The sub-events correspond to media itemscaptured at different locations (e.g., Oahu 507 a, Kauai 507 b and Maui507 c) and on different dates (e.g., 509 a, 509 b, 509 c) within theHawaii Vacation meta-event. FIG. 5C further illustrates detection ofcontact 520 over respective representation 522 on touch screen 112. InFIG. 5C, the device detects a dragging gesture that includes movement ofcontact 520 from location 520 a to location 520 b. In response todetecting the movement of contact 520, the device moves respectiverepresentation 522 within the one or more representations of media items511 c associated with sub-event 518 c to one or more representations ofmedia items 511 b associated with sub-event 518 b. FIG. 5C illustratesdisplaying one or more representations of media items (e.g., 511 a, 511b, 511 c) within the sub-events at a detailed-granularity level.

FIG. 5D illustrates respective representation 522 within the one or morerepresentations of media items 511 b associated with sub-event 518 b inresponse to detecting the dragging gesture with contact 520 in FIG. 5C.FIG. 5D further illustrates detecting a press and hold gesture withcontact 524 over event title 507 b (e.g., Kauai) within sub-event 518 bon touch screen 112. In some embodiments, in a response to a tap gesture(e.g., a contact detected for less than a predefined time threshold suchas 0.05, 0.1, 0.2, 0.5 or 1.0 seconds or some other reasonable amount oftime), the device displays an expanded representation of the sub-event,and in response to detecting a press and hold gesture (e.g., a contactdetected for more than a predefined time threshold such as 0.05, 0.1,0.2, 0.5 or 1.0 seconds or some other reasonable amount of time), thedevice displays a user interface for editing the title of the sub-event.

FIG. 5E illustrates displaying an edit sub-event details window 525 inresponse to detecting the press and hold gesture with contact 524 inFIG. 5D. In some embodiments, the device is configured to automaticallypopulate a sub-event title and sub-event date(s) for a respectivesub-event in accordance with metadata associated with the items withinthe event or sub-event. In FIG. 5E, the edit sub-event details window525 includes a sub-event title field 526 and a sub-event date(s) field528 populated with the current sub-event date(s) for sub-event 518 b. Insome embodiments, a user is enabled to edit the sub-event title field526 and the sub-event date(s) field 528 with a text or speech input.FIG. 5E further illustrates editing the sub-event title field 526 torename sub-event title 507 b from Kauai to Grand Beach Hotel Kauai via atext input 530.

FIG. 5F illustrates displaying Grand Beach Hotel Kauai as the eventtitle 507 b for sub-event 518 b in response to text input 530 in FIG.5E. FIG. 5F further illustrates detecting a pinch gesture correspondingto movement of contacts 532 and 534 toward each other on touch screen112.

FIG. 5G illustrates displaying an events view 503 in response todetecting the pinch gesture in FIG. 5F. In some embodiments, the deviceis enabled to switch between views (e.g., event view 503, month view 513(FIG. 5H), seasons view 551 (Figure SI), and year view 561 (FIG. 5J)) bydetecting a pinch or depinch gesture (e.g., a pinch gesturecorresponding to movement of contacts 532 and 534 in FIG. 5F or adepinch gesture corresponding to movement of contacts 582 and 584 inFIG. 5O) or, optionally, by detecting a horizontal swipe gesture withthree or more contacts. In some embodiments, the device is similarlyenabled to switch between views by detecting a tap gesture over on anaffordance corresponding to a respective view (e.g., events affordance504 in FIG. 5F, months affordance 512 in FIG. 5G, seasons affordance 550in FIG. 5H, and years affordance 560 in FIG. 5I). FIG. 5G furtherillustrates detecting a pinch gesture corresponding to movement ofcontacts 536 and 538 toward each other on touch screen 112.

FIG. 5H illustrates displaying a months view 513 in response todetecting the pinch gesture in FIG. 5G. FIG. 5H illustrates a pluralityof selectable multi-item months 540 a, 540 b, 540 c, 540 d within monthsview 513. In FIG. 5H, each representation of a month includes a monthtitle (e.g., 542 a, 542 b, 542 c, 542 d), location(s) indicator (e.g.,544 a, 544 b, 544 c, 544 d), and one or more representations of mediaitems (e.g., 545 a, 545 b, 545 c, 545 d) within the respective month. InFIG. 5H, the one or more representations of media items within themonths are displayed at a detailed-granularity level. FIG. 5H furtherillustrates a seasons affordance 550 which enables the device to displaya seasons view 551 (described in more detail below with reference toFIG. 5I) in response to a tap gesture on the affordance 550 and anevents affordance 504 which enables the device to display an events view503 (described in more detail above with reference to FIGS. 5A-5B and5G) in response to a tap gesture on the affordance 504. FIG. 5H furtherillustrates detecting a pinch gesture corresponding to movement contacts546 and 548 toward each other on touch screen 112.

FIG. 5I illustrates displaying a seasons view 551 in response todetecting the pinch gesture in FIG. 5H. FIG. 5I illustrates a pluralityof selectable multi-item seasons 552 a, 552 b, 552 c, 552 d withinseasons view 551. In FIG. 5H, each representation of a season includes aseason title (e.g., 553 a, 553 b, 553 c, 553 d), location(s) indicators(e.g., 554 a, 554 b, 554 c, 554 d), and one or more representations ofmedia items (e.g., 555 a, 555 b, 555 c, 555 d) within the respectiveseason. In FIG. 5I, the one or more representations of media itemswithin the season are displayed at a detailed-granularity level. FIG. 5Ifurther illustrates a years affordance 560 which enables the device todisplay a years view 561 (described in more detail below with referenceto FIG. 5J) in response to a tap gesture on the affordance 560 and amonths affordance 512 which enables the device to display a months view513 (described in more detail above with reference to FIG. 5H) inresponse to a tap gesture on the affordance 512. FIG. 5I furtherillustrates detecting a pinch gesture corresponding to movement ofcontacts 556 and 558 toward each other on touch screen 112.

FIG. 5J illustrates displaying a years view 561 in response to detectingthe pinch gesture in FIG. 5I. FIG. 5J illustrates a plurality of years562 a, 562 b, 562 c and a location(s) indicator (e.g., 564 a, 564 b) forthe years. The location(s) indicator include one or more locationsassociated with items within a corresponding year (e.g., locationindicator 564 a includes Barcelona, Ibiza, Paris, Mykonos, Budapest, and19 Others within 2011). In FIG. 5J, the plurality of years furtherinclude a plurality of representations of media items (e.g., 566 a, 566b, 566 c) displayed at an overview-granularity level. FIG. 5J furtherillustrates detecting a tap gesture with contact 568 over a respectiverepresentation of a media item in the plurality of representations ofmedia items 566 a on touch screen 112.

FIG. 5K illustrates continuing to display the plurality ofrepresentations of media items 566 a in response to detecting the tapgesture with contact 568 in FIG. 5J.

FIG. 5L illustrates detecting a press and hold gesture with contact 570at position 570 a corresponding to (e.g., over or near) a firstrespective representation of a media item in the plurality ofrepresentations of media items 566 a on touch screen 112. FIG. 5Lfurther illustrates ceasing to display the first respectiverepresentation and displaying an enlarged representation (or a preview)572 of the media item in response to detecting the press and holdgesture with contact 570 at position 570 a corresponding to therespective representation. In some embodiments, the press and holdgesture is detected in accordance with a determination that a contactwas held over or near a respective representation in excess of apredetermined amount of time (e.g., 0.05, 0.1, 0.2, 0.5 or 1.0 secondsor some other reasonable amount of time), and the enlargedrepresentation of the respective representation is not displayed untilthe predetermined amount of time has elapsed. In some embodiments, theaforementioned respective representation is a first respectiverepresentation. In some embodiments, in the year view, while performinga press and hold gesture, the device selects a representation of a mediaitem that is slightly offset from the contact (e.g., a focus selectorcorresponding to the contact is slightly offset from the contact), sothat the user can see a location of the representation of the media itemin the array of representations of media items that is currently beingselected/enlarged (e.g., so that the location is not obscured by theuser's finger).

FIG. 5M illustrates ceasing to display enlarged representation 572corresponding to the first respective representation (e.g., shown inFIG. 5L) and redisplaying the first respective representation 569. FIG.5M further illustrates displaying enlarged representation 574corresponding to a second respective representation adjacent to anddistinct from the first respective representation and ceasing to displaythe second respective representation in response to detecting contact570 at position 570 b corresponding to (e.g., over or near) the secondrespective representation on touch screen 112.

FIG. 5N illustrates displaying a respective media item 576 (e.g., afull-size image) corresponding to the first respective representation ina photo view 578 in response to detecting liftoff of contact 570 fromposition 570 a in FIG. 5L. In FIG. 5N, a multi-item event 502 nassociated with the respective media item 576 is displayed and anindicator 580 corresponding to the number associated with the respectivemedia item 576 within a sequential number of media items related toevent 502 n is displayed. The event title 506 n (e.g., Desert Trip) andevent location 508 n (e.g., Tombstone) for event 502 n are alsodisplayed in FIG. 5N. FIG. 5N further illustrates a years affordance 560which enables the device to display the years view 561 (described inmore detail above with reference to FIGS. 5J-5L) in response to a tapgesture on the affordance 560 and an events affordance 504 which enablesthe device to display the events view 503 (described in more detailabove with reference to FIGS. 5A-5B and 5G) in response to a tap gestureon the affordance 504.

FIG. 5O illustrates detecting a depinch gesture corresponding tomovement of contacts 582 and 584 away from each other on touch screen112 while in years view 561.

FIG. 5P illustrates displaying a seasons view 551 in response todetecting the depinch gesture in FIG. 5O. FIG. 5N further illustratesdetecting a depinch gesture corresponding to movement of contacts 586and 588 away from each other on touch screen 112.

FIG. 5Q illustrates displaying a months view 513 in response todetecting the depinch gesture in FIG. 5N. FIG. 5Q further illustratesdetecting a tap gesture with contact 590 over an affordance 591 cassociated with selectable multi-item month group 540 c on touch screen112. In some embodiments, only the affordance associated with a grouping(e.g., affordances 591 a, 591 b, 591 c, 591 d) is selectable. In someother embodiments, the entire description box or area associated with agrouping is selectable. For example, in some embodiments, the entirearea within description box 589 corresponding to month 540 c isselectable.

FIG. 5R illustrates displaying month 540 c (e.g., January 2013)associated with affordance 591 c in response to detecting the tapgesture in FIG. 5Q. In FIG. 5R, a plurality of events 502 c, 502 f(e.g., entitled New Year's Eve Party 506 c and Suzanne's Birthday Party506 f, respectively) occurring in month 540 c (e.g., January 2013) aredisplayed. One or more representations of media items (e.g., 510 c and510 f) associated with corresponding events 502 c, 502 f are alsodisplayed in FIG. 5R. FIG. 5R further illustrates detecting a tapgesture with contact 594 over respective representation 596 within theone or more representations of media items 510 c associated with event502 c on touch screen 112.

FIG. 5S illustrates displaying a respective media item 598 (e.g., afull-size image) corresponding to the respective representation 596 in aphoto view 578 in response to detecting the tap gesture in FIG. 5R. InFIG. 5S, a multi-item event 502 c associated with the respective item576 is displayed and an indicator 580 corresponding to the numberassociated with the respective item 598 within event 502 c is displayed.The event title 506 c (e.g., New Year's Eve Party) and event location508 c (e.g., San Francisco) for event 502 c are also displayed in FIG.5S.

Thus, in some embodiments, an event that spans two months or two yearsis displayed in event groups for both months and/or both years (e.g.,the New Year's Eve Party event is grouped with both the December eventsand the January events). In some embodiments, even if an event isgrouped with multiple different events groups, the images from the eventare not repeated in the year view (e.g., the view shown in FIG. 5K). Forexample, the last row of representations in 2012 in FIG. 5K wouldinclude representations that correspond to images from December 31 atthe New Year's Eve Party, while the first row of representations of 2013would include representations that correspond to images from January 1at the New Year's Eve Party.

FIGS. 6A-6E are flow diagrams illustrating a method 600 of dividing acollection of media items into a plurality of multi-item events inaccordance with some embodiments. The method 600 is performed at anelectronic device (e.g., device 300, FIG. 3, or portable multifunctiondevice 100, FIG. 1A) with a display and a touch-sensitive surface. Insome embodiments, the display is a touch screen display and thetouch-sensitive surface is on the display. In some embodiments, thedisplay is separate from the touch-sensitive surface. Some operations inmethod 600 are, optionally, combined and/or the order of some operationsis, optionally, changed.

As described below, the method 600 provides an intuitive way to divide acollection of media items into a plurality of multi-item events. Themethod reduces the cognitive burden on a user when dividing a collectionof media items into a plurality of multi-item events, thereby creating amore efficient human-machine interface. For battery-operated electronicdevices, enabling a user to divide a collection of media items into aplurality of multi-item events faster and more efficiently conservespower and increases the time between battery charges.

The device obtains (602) a collection of media items (e.g., a “library”of images and/or videos), where the media items are ordered in achronological order in accordance with a time indicator associated witheach of the media items.

The device determines (604) one or more patterns in the collection ofmedia items based at least in part on a comparison between properties ofsequentially adjacent media items in the collection of media items(e.g., in the chronological order). FIG. 5A, for example, shows thedevice displaying a plurality of respective events (e.g., 502 a, 502 b,502 c, 502 d) related to corresponding groups of media items in acollection of sequentially adjacent media items. The device divides thecollection of media items (or a portion of the collection) into groups(or respective events 502) by identifying one or more patterns based ona comparison between properties of sequentially adjacent media items.

The device divides (606) the collection of media items into multipleevents (e.g., dividing the collection of media items into multipleevents automatically without user intervention) that includes aplurality of multi-item events, where: each multi-item event includes(608) a plurality of the media items with time indicators within acorresponding event time range; and the event time range for amulti-item event is selected (610) in accordance with the one or morepatterns determined in the collection of media items. FIG. 5A, forexample, shows the device displaying a plurality of multi-item events502 a, 502 b, 502 c, 502 d within an events view 503 on touch screen112. In FIG. 5A, each of the multi-item events includes a plurality ofmedia items (e.g., one or more representations of media items 510 a, 501b, 501 c, 510 d). Further in this example, time ranges for themulti-item events are selected in accordance with a pattern determinedin the collection (e.g., event 506 c entitled New Year's Eve Partycorresponds to media items captured on an evening between Dec. 31, 2012and Jan. 1, 2013 and event 506 d entitled Cross Country Road Tripcorresponds to media items captured during a week long road trip inFebruary 2013 from San Francisco to New York City).

In some embodiments, the event time ranges for the plurality ofmulti-item events are (612) non-overlapping (e.g., there is a sequenceof images that are divided at event transition points, creating a set ofnon-overlapping events). FIG. 5B, for example, shows a plurality ofnon-overlapping, multi-item events 502 b, 502 c, 502 d, 502 e. In FIG.5B, each of the events encompasses a distinct sequence of media itemsand no media item is shared between two events.

In some embodiments, the device divides the collection of media itemsinto multiple events by: determining (614) a pattern in the collectionof media items that indicates that a respective event occurred over aperiod of time that includes a respective date-transition boundary(e.g., an end of day boundary such as midnight, an end of week boundarysuch as midnight on Saturday, an end of month boundary such as midnighton the last day of the month, or an end of year boundary such as anmidnight on December 31); and dividing (616) the collection of mediaitems so as to include one or more items with a time indicator beforethe respective date-transition boundary and one or more items with atime indicator after the respective date-transition boundary (e.g., aDecember/January vacation is shown as a single event or a Saturdayevening/Sunday morning party is shown as a single event). Thus, in someembodiments, date-transition boundaries are not an absolute indicator ofevent boundaries and when other patterns indicate that a continuousevent continued through a respective date-transition boundary, then therespective date-transition boundary is ignored for the purposes ofdetermining the beginning/end of the event. FIG. 5B, for example, showsevent 502 c entitled New Year's Eve Party which includes media itemsfrom both Dec. 31, 2012 and Jan. 1, 2013.

In some embodiments, the device divides the collection of media itemsinto multiple events by identifying (618) a plurality of transitionpoints in the collection of media items. And, one or more of thetransition points each correspond to (620) a respective change in arespective pattern of data that corresponds to the collection of mediaitems (other than a date-transition boundary) that occurs at thetransition point.

In some embodiments, the respective change in the respective pattern ofdata that corresponds to a respective media item is based on (622) oneor more of: an amount of time (624) between a capture time of therespective media item and a capture time of a sequentially adjacentmedia item in the chronological order; a change in detected physicallocation (626) (e.g., detected via geotagging of photos or video)between a capture time of the respective media item and a capture timeof a sequentially adjacent media item in the chronological order; achange in detected altitude (628) (e.g., detected using a barometerintegrated into the device) between a capture time of the respectivemedia item and a capture time of a sequentially adjacent media item inthe chronological order; a change in detected speed (630) (e.g.,detected via accelerometers or location tracking history, such as GPS)between a capture time of the respective media item and a capture timeof a sequentially adjacent media item in the chronological order; achange in detected network connections (632) between a capture time ofthe respective media item and a capture time of a sequentially adjacentmedia item in the chronological order; a change in weather (634) (e.g.,recorded from a weather app) between a capture time of the respectivemedia item and a capture time of a sequentially adjacent media item inthe chronological order; a change in physiological indicators (e.g.,heart rate, temperature, EKG patterns) of a user (636) between a capturetime of the respective media item and a capture time of a sequentiallyadjacent media item in the chronological order; a difference betweenindividuals (638) associated with (or, identified in (e.g., via facerecognition, metadata tags, or network connection identifiers)) a firstplurality of media items prior to the respective media item in thechronological order and associated with (or, identified in (e.g., viaface recognition, metadata tags, or network connection identifiers)) asecond plurality of media items after the respective media item in thechronological order; and a difference in rate of change of location overtime (640) between captures time of a first plurality of media itemsprior to the respective media item in the chronological order and a rateof change of location over time between a capture times of a secondplurality of media items after the respective media item in thechronological order.

In a first example, metadata associated with a first plurality of mediaitems indicates capture times on Feb. 14, 2013 and metadata associatedwith a second plurality of media items (sequentially adjacent to thefirst plurality) indicates a capture time on Mar. 1, 2013. Thus, in thisexample, the device identifies a transition point between the firstplurality of media items and the second plurality of media items basedon an amount of time between capture times and divides the firstplurality of media items and the second plurality of media items intoseparate events.

In another example, metadata associated with a first plurality of mediaitems indicates that the corresponding plurality of media items werecaptured in Hawaii (e.g., based on GPS data or geotagging) and metadataassociated with a second plurality of media items (sequentially adjacentto the first plurality) in event indicates that the correspondingplurality of media items were captured in San Francisco. Thus, in thisexample, the device identifies a transition point between the firstplurality of media items and the second plurality of media items basedon a change in detected physical location and divides the firstplurality of media items and the second plurality of media items intoseparate events (e.g., a Hawaii Vacation event and a Bay to Breakersevent).

In another example, metadata associated with a first plurality of mediaitems indicates that the corresponding plurality of media items werecaptured above 10,000 feet (e.g., based on barometer data) and metadataassociated with a second plurality of media items (sequentially adjacentto the first plurality) indicates that the corresponding plurality ofmedia items were captured below sea level. Thus, in this example, thedevice identifies a transition point between the first plurality ofmedia items and the second plurality of media items based on a change indetected altitude and divides the first plurality of media items and thesecond plurality of media items into separate events (e.g., a MountWhitney Hiking event and a Salton Sea Drive event).

In another example, metadata associated with a first plurality of mediaitems indicates that the corresponding plurality of media items werecaptured while moving in excess of 60 miles per hour (e.g., based onaccelerometer data) and metadata associated with a second plurality ofmedia items (sequentially adjacent to the first plurality) indicatesthat the corresponding plurality of media items were captured whilemoving no faster than 15 miles per hour. Thus, in this example, thedevice identifies a transition point between the first plurality ofmedia items and the second plurality of media items based on a change indetected speed and divides the first plurality of media items and thesecond plurality of media items into separate events (e.g., aPerformance Driving Road Test event and a Horseback Riding event).

In another example, metadata associated with a first plurality of mediaitems indicates that the corresponding plurality of media items werecaptured while in Germany (e.g., based on detected telecommunicationnetwork connections) and metadata associated with a second plurality ofmedia items (sequentially adjacent to the first plurality) indicatesthat the corresponding plurality of media items were captured while inAustria (e.g., based on detected telecommunication network connections).Thus, in this example, the device identifies a transition point betweenthe first plurality of media items and the second plurality of mediaitems based on a change in detected network connections and divides thefirst plurality of media items and the second plurality of media itemsinto separate events (e.g., a Munich Day Photos event and a SalzburgEvening Concert event).

In another example, metadata associated with a first plurality of mediaitems indicates that the corresponding plurality of media items werecaptured on a sunny day with a high temperature in the upper 70s (e.g.,based on data from a weather app) and metadata associated with a secondplurality of media items (sequentially adjacent to the first plurality)indicates that the corresponding plurality of media items were capturedon a snowy day with a high temperature in the low 20s. Thus, in thisexample, the device identifies a transition point between the firstplurality of media items and the second plurality of media items basedon a change in weather and divides the first plurality of media itemsand the second plurality of media items into separate events (e.g., aCoronado Beach event and a Snowbird Snowboarding event).

In another example, metadata associated with a first plurality of mediaitems indicates that the corresponding plurality of media items werecaptured while a user's heart rate was under 60 beats per minute (e.g.,based on detected heart rate data) and metadata associated with a secondplurality of media items (sequentially adjacent to the first plurality)indicates that the corresponding plurality of media items were capturedwhile a user's heart rate was in excess of 100 beats per minute. Thus,in this example, the device identifies a transition point between thefirst plurality of media items and the second plurality of media itemsbased on a change in physiological indicators of a user and divides thefirst plurality of media items and the second plurality of media itemsinto separate events (e.g., a Golden Gate Yoga event and a Skydivingevent).

With respect to identifying a transition point based on the differencebetween individuals associated with a first plurality of media items anda second plurality of media items, if, for example, a first set ofphotos includes many photos with different subsets of a first group ofpeople and a second set of photos includes many photos with differentsubsets of a second group of people that is substantially different thanthe first group of people, then the device will determine that thephotos of the first group of people (and other photos near in time tothose photos) correspond to a first event and the photos of the secondgroup of people (and other photos near in time to those photos)correspond to a second event different from the first event.

With respect to identifying a transition point based on the differencein rate of change of location over time, if, for example, a set ofphotos indicates that a user is driving 300 miles per day (e.g., photosfrom consecutive days or the same day have geographical coordinates thatare 300 miles or more apart), then the user is probably on a road trip,and if a set of photos subsequently indicates that the user isrelatively stationary (e.g., photos from consecutive days havegeographical coordinates within a 50 mile radius) then the user hasprobably ended the road trip and the road trip will be identified as anevent with start and stop times indicated by the change in the dailytraveling distance of the user as indicated by the geotagginginformation of the user's photos.

In some embodiments, after dividing (642) the collection of media itemsinto multiple events, the device groups (644) a set of consecutiveevents that include two or more of the multi-item events into arespective pattern-based event group based at least in part on the oneor more patterns in the collection of media items, where: thepattern-based event group is divided (646) from other eventpattern-based groups in accordance with a change in a first pattern inthe collection of media items the corresponds to the pattern-based eventgroup; and a respective multi-item event within the pattern-based eventgroup is divided (648) from other events in the pattern-based eventgroup in accordance with a change in a second pattern in the collectionof media items, where the change in the second pattern does notcorrespond to a change in (e.g., does not break) the first pattern thatcorresponds to the pattern-based event group.

With respect to the first pattern, for example, the user's photo libraryincludes a sequence of photos indicating that the user travelled toHawaii (e.g., based on geotagging information for photos in the user'sphoto library that include a group of photos at a location other thanHawaii followed by a group of photos in Hawaii). FIG. 5A, for example,shows event 502 b entitled Hawaii Vacation associated with the firstpattern. With respect to the second pattern, for example, the user'sphoto library includes a sequence of photos indicating that the usertravelled from Kauai to Maui while in Hawaii (e.g., based on geotagginginformation for photos in the user's photo library that include a groupof photos in Kauai followed by a group of photos in Maui). FIG. 5C, forexample, shows a plurality of sub-events 518 (e.g., sub-event 518 arelated to Oahu, sub-event 518 b related to Kauai, and sub-event 518 crelated to Maui) within event 502 b related to the Hawaii Vacation.

In some embodiments, after dividing (642) the collection of media itemsinto multiple events, the device groups (650) a set of consecutiveevents that include two or more of the multi-item events into aplurality of date-based event groups (e.g., content-based events aregrouped into date-based event groups such as grouping the events by“month,” “season,” and/or “year”) that includes: a first date-basedevent group that includes (652) a first set of events that include itemswith time indicators within a first date range; and a second date-basedevent group that includes a second set of events that include items withtime indicators within a second date range. In some embodiments, thesecond date range does not overlap with the first date range. FIG. 5H,for example, shows a months view 513 including a plurality of selectabledate-based event groups (e.g., months 540 a, 540 b, 540 c, 540 d). Forexample, event 502 b (shown in FIG. 5A) is grouped into month 540 b,event 502 c (shown in FIG. 5A) is grouped into months 540 b and 540 c,and event 502 d (shown in FIG. 5A) is grouped into month 540 d. FIG. 5I,for example, shows a seasons view 551 including a plurality ofselectable date-based event groups (e.g., seasons 552 a, 552 b, 552 c,552 d). FIG. 5J, for example, shows a years view 561 including aplurality of date-based event groups (e.g., years 562 a, 562 b, 562 c).

And, in some embodiments, a respective event includes (654) one or moreitems with time indicators in the first date range and one or more itemswith time indicators in the second date range; and the respective eventis included in both the first date-based event group and the seconddate-based event group. For example, photos (or media items) from event502 c entitled New Year's Eve Party (shown in FIG. 5A) including photosfrom Dec. 31, 2012 and Jan. 1, 2013 appear in month group 540 b relatedto December 2012 and 540 c related to January 2013 (shown in FIG. 5H),seasons group 552 c related to Winter 2012-2013 (shown in FIG. 5I), andyear group 562 b related to 2012 and year group 562 c related to 2013(shown in FIG. 5J). In some embodiments, a user is provided with optionsfor renaming events and/or renaming pattern-based event groups but isnot provided with options for renaming date-based event groups. FIGS.5D-5E, for example, show a user editing sub-event title 507 b associatedwith sub-event 518 b via text input 530. Similarly, for example, theuser is enabled to edit event titles 506 and event locations 508corresponding to events 502 in FIG. 5A.

In some embodiments, the device: receives (656) a request to display arespective portion of the collection of media items; and in response tothe request to display the respective portion of the collection of mediaitems, displays (658) representations of a plurality of events thatcorrespond to the respective portion of the collection of media items onthe display. FIG. 5A, for example, shows the device displaying events(e.g., 502 a, 502 b, 502 c, 502 d) within a date range (e.g., December2012-February 2013) specified by a user. FIG. 5Q, for example, shows thedevice displaying months 540 a, 540 b, 540 c, 540 d at a user-selectedgranularity level (e.g., months view 513) near a date selected by a user(e.g., months within winter 2012-2013) via a depinch gesture in FIG. 5P.For example, a user pinch or depinch gesture (e.g., the pinch gesturecorresponding to movement of contacts 532 and 534 while displayingmonths view 513 in FIG. 5H results in displaying seasons view 551 inFIG. 5I or the depinch gesture corresponding to movement of contacts 582and 584 while displaying years view 561 in FIG. 5O results in displayingseasons view 551 in FIG. 5P) selects a granularity level for displayingevents. For example, a vertical scrolling gesture (e.g., including avertical dragging or swipe gesture) selects events to display within agranularity level (e.g., the vertical drag gesture of contact 514 inFIG. 5A results in viewing a different plurality of events in FIG. 5B).In some embodiments, the granularity level corresponds to a tier ofevents or event groups that is displayed (e.g., items grouped by event,items grouped by pattern-based event group, items grouped by date-basedevent group including month, season or year).

In some embodiments, a respective representation (660) of a respectiveevent of the plurality of events includes: an identifier (662) of therespective event (e.g., a user-selected, device-generated or defaultgenerated title for the respective event); a list of locations (664) ofitems in the respective event; and one or more images (668) thatcorrespond to items in the respective event (e.g., thumbnails of photosin the event). FIG. 5A, for example, shows a plurality of multi-itemevents 502 (e.g., events 502 a, 502 b, 502 c, 502 d) (each sometimescalled a respective representation of a respective event) within eventsview 503. In FIG. 5A, each of the plurality of events includes anassociated event title or identifier 506 (e.g., Sunday Brunch 506 a,Hawaii Vacation 506 b, New Year's Eve Party 506 c, and Cross CountryRoad Trip 506 d), a list of event location(s) (sometimes herein called alocations identifier) 508 (e.g., San Jose 508 a related to event 502 aand Oahu, Kauai, Maui 508 b related to event 502 b), and one or morerepresentations of media items 510 (e.g., 510 a, 510 b, 510 c, 501 d).In some embodiments, a respective representation of a media itemincludes a thumbnail associated with a photo, or a still or a gif imageassociated with a video.

In some embodiments, the list of locations includes (666) a subset oflocations of items in the respective event selected in accordance withlocation patterns in the respective event (and, optionally, locationpatterns in the collection of media). In some embodiments, the locationsare selected to be the most unique or interesting locations in therespective event, which includes locations that are infrequently visitedby the user (e.g., locations for which there are few photos in the photolibrary at the location) and/or locations for which there is a largeblock of temporally contiguous photos in the respective event. FIG. 5I,for example, shows season group 552 a with corresponding locationsindicator 554 a including Yosemite, Santa Cruz, and 2 Others. In thisexample, infrequently visited locations are displayed (e.g., Yosemite,Santa Cruz) in locations indicator 554 a and frequently locations (e.g.,Sunnyvale and Palo Alto corresponding to the user's workplace and home)are not displayed or truncated from locations indicator 554 a (e.g.,included as the ‘2 Others’), so as to emphasize the locations that aremost likely to be distinctive or interesting to the user when navigatingthrough the media.

In some embodiments, the one or more images that correspond to items inthe respective event are selected so as to (670) represent imagesassociated with the locations in the list of locations. In someembodiments, the device only displays a subset of locations of items inthe event, and the device selects thumbnails of photos to display in therepresentation of the event so that the thumbnails are thumbnails ofphotos that are geotagged with one of the locations in the subset oflocations (e.g., thumbnails of photos that are not geotagged with one ofthe locations are not includes or are included less frequently thanthumbnails of photos that are geotagged with one of the locations). Insome embodiments, the locations in the subset of locations are thelocations that were determined to be the most interesting to the user(e.g., photos of infrequently visited locations or photos from largeblocks of photos) and thus the photos associated with those locationsare more likely be interesting to the user (e.g., photos that arerepresentative of important events in a grouping of events). FIG. 5B,for example, shows one or more images 510 d related to event 502 dentitled Cross Country Road. In this example, the one or more images 510d include images associated with the locations (e.g., Reno, Salt LakeCity and Cheyenne) displayed in the list of locations 508 d.

In some embodiments, the representations of the plurality of eventsincludes (672) a first representation of a first event that includes afirst plurality of representative images, and the representations of theplurality of events includes a second representation of a second eventthat includes a second plurality of representative images. For example,in FIG. 5C, each of the respective sub-events 518 includes a pluralityof representations of media items (e.g., 511 a, 511 b, 511 c) (sometimescalled representative images) corresponding to the respective sub-event.

And, in some embodiments, the device receives (674) a request to move arespective representative image from the first plurality ofrepresentative images to the second plurality of representative images(e.g., a touch and drag gesture from the respective image to the secondrepresentation of the second event); and in response to receiving therequest to move the respective representative image, the device moves(676) an item that corresponds to the respective representative imagefrom the first event to the second event. In some embodiments, therespective representative image is moved from the first representationof the first event to the second representation of the second event inresponse to receiving the request. In FIG. 5C, for example, the devicedetects a dragging gesture of contact 520 from location 520 a tolocation 520 b, and in response to detecting the dragging gesture, thedevice moves the respective representation 522 within the plurality ofrepresentations of media items 511 c associated with sub-event 518 c tothe respective plurality of representations of media items 511 bassociated with sub-event 518 b. FIG. 5D, for example, shows the devicedisplaying the respective representation 522 within the plurality ofrepresentations of media items 511 b associated with sub-event 518 b inresponse to the dragging gesture in FIG. 5C.

It should be understood that the particular order in which theoperations in FIGS. 6A-6E have been described is merely exemplary and isnot intended to indicate that the described order is the only order inwhich the operations could be performed. One of ordinary skill in theart would recognize various ways to reorder the operations describedherein. Additionally, it should be noted that details of other processesdescribed herein with respect to other methods described herein (e.g.,method 700) are also applicable in an analogous manner to method 600described above with respect to FIGS. 6A-6E. For example, the contacts,granularity levels, media items, representations of media items, events,event groups, and other user interface elements described above withreference to method 600 optionally have one or more of thecharacteristics of the contacts, granularity levels, media items,representations of media items, events, event groups, and other userinterface elements described herein with reference to other methodsdescribed herein (e.g., method 700). For brevity, these details are notrepeated here.

FIGS. 7A-7D are flow diagrams illustrating a method 700 of organizing acollection of media items into a hierarchy of granularity levels inaccordance with some embodiments. The method 700 is performed at anelectronic device (e.g., device 300, FIG. 3, or portable multifunctiondevice 100, FIG. 1A) with a display and a touch-sensitive surface. Insome embodiments, the display is a touch screen display and thetouch-sensitive surface is on the display. In some embodiments, thedisplay is separate from the touch-sensitive surface. Some operations inmethod 700 are, optionally, combined and/or the order of some operationsis, optionally, changed.

As described below, the method 700 provides an intuitive way to organizea collection of media items into a hierarchy of granularity levels. Themethod reduces the cognitive burden on a user when organizing acollection of media items into a hierarchy of granularity levels,thereby creating a more efficient human-machine interface. Forbattery-operated electronic devices, enabling a user to organize acollection of media items into a hierarchy of granularity levels fasterand more efficiently conserves power and increases the time betweenbattery charges.

The device obtains (702) a collection of media items (e.g., a “library”of images and/or video), where the media items are organized into ahierarchy of granularity levels that includes one or moredetailed-granularity levels within one or more overview-granularitylevels. For example, the hierarchy of granularity levels includes anevents view 503 displayed at a detailed-granularity level (shown in FIG.5A), a months view 513 displayed at a detailed-granularity level (shownin FIG. 5H), a seasons view 551 displayed at a detailed-granularitylevel (shown in FIG. 5I), and a years view 561 displayed at anoverview-granularity level (shown in FIG. 5J).

The device receives (704) a first request to display a first portion ofthe collection organized in accordance with a first detailed-granularitylevel. FIG. 5A, for example, shows a first portion of the collection ofmedia items displayed in an events view 503 with a plurality ofmulti-item events 502 organized in accordance with a firstdetailed-granularity level.

In some embodiments, the first detailed-granularity level corresponds to(706) a first timescale (e.g., a month). FIG. 5H, for example, shows thedevice displaying a portion of the collection of media items in a monthsview 513 with a plurality of month groups 540 corresponding to a monthtimescale.

In response to the first request, the device displays (708) a firstplurality of representations of the media items. FIG. 5H, for example,shows the device displaying a plurality of representations of mediaitems (e.g., 545 a, 545 b, 545 c, 545 d) for the month groups 540. Insome embodiments, a respective representation is a thumbnail imageassociated with a photo or a video.

The first plurality of representations is displayed (710) at adetailed-granularity size. For example, in FIG. 5H, the respectivepluralities of representations of media items (e.g., 545 a, 545 b, 545c, 545 d) are displayed at a detailed-granularity size. Similarly, inFIG. 5A, for example, the respective pluralities of representations ofmedia items (e.g., 510 a, 510 b, 510 c, 510 d) are displayed at adetailed-granularity size. Also, in FIG. 5I, for example, the respectivepluralities of representations of media items (e.g., 555 a, 555 b, 555c, 555 d) are displayed at a detailed-granularity size.

In some embodiments, the detailed-granularity size is (712) above aminimum object-selection size (e.g., 44×44 points/pixels). FIG. 5R, forexample, shows the device detecting a tap gesture with contact 594 overrespective representation 596 within a plurality of representations ofmedia items 510 c associated with event 502 c. In FIG. 5R, therepresentations in the respective plurality of representations of mediaitems 510 c are displayed at the detailed-granularity size, and therepresentations in the respective plurality of representations of mediaitems 510 c are selectable (e.g., each representation is equal to orgreater than 44×44 points/pixels in size).

The first plurality of representations are spaced (714) apart from eachother by a detailed-granularity distance. In FIG. 5H, for example, therepresentations in a respective plurality of representations of mediaitems (e.g., 545 a, 545 b, 545 c, 545 d) are spaced apart from anadjacent representation by a detailed-granularity distance. Similarly,in FIG. 5A, for example, the representations in a respective pluralityof representations of media items (e.g., 510 a, 510 b, 510 c, 510 d) arespaced apart from an adjacent representation by a detailed-granularitydistance. Also, in FIG. 5I, for example, the representations in arespective plurality of representations of media items (e.g., 555 a, 555b, 555 c, 555 d) are spaced apart from an adjacent representation by adetailed-granularity distance.

In some embodiments, the detailed-granularity distance is (716) greaterthan an object-selection margin (e.g., a spacing that enables users toeasily distinguish and select between different image thumbnails).

In some embodiments, the first representation of the media items in thefirst plurality of representations of the media items that correspond tothe first detailed-granularity level includes (718) images thatcorrespond to a subset of items in a first time range. FIG. 5I, forexample, shows a first plurality of representations of the media items555 a that corresponds to media items related to a first time rangedesignated by season group 552 a (e.g., Summer 2012). FIG. 5I, forexample, further shows a second plurality of representations of themedia items 555 b that corresponds to media items related to a secondtime range designated by season group 552 b (e.g., Fall 2012).

In some embodiments, the first plurality of representations thatcorrespond to the first detailed-granularity level is grouped (720) intoa plurality of groups and different groups of representations in thefirst plurality of representations are separated by at least a firstdistance (e.g., group descriptions or event titles between granularitylevels). FIG. 5Q, for example, shows description box 589 correspondingto month group 540 c including month title 542 c (e.g., January 2013)and location(s) indicator 544 c (e.g., San Francisco) between a firstgroup of representations 545 c related to month group 540 c and a secondgroup of representations 545 b related to month group 540 b. In thisexample, the height of description box 589 is the first distance.

The device receives (722) a second request to display a second portionof the collection organized in accordance with a respectiveoverview-granularity level that corresponds to multipledetailed-granularity levels. FIG. 5J, for example, shows a secondportion of the of the collection of media items displayed in a yearsview 661 with a plurality of year groups 562 organized in accordancewith an overview-granularity level. FIG. 5J, for example, further showsa respective plurality of representations of media items (e.g., 566 a,566 b, 566 c) displayed for different years 562, where the respectivepluralities of representations of media items include media itemscorresponding to multiple detailed-granularity levels (e.g., 566 bincludes media items from the months and seasons in 2012).

In some embodiments, the overview-granularity level corresponds to (724)a third timescale larger than the second timescale (e.g., a year). FIG.5J, for example, shows the device displaying a portion of the collectionof media items in a years view 661 with a plurality of year groups 562corresponding to year timescales.

In response to the second request, the device displays (726) a secondplurality of representations of the media items. FIG. 5J, for example,shows the device displaying a respective plurality of representations ofmedia items (e.g., 566 a, 566 b, 566 c) for corresponding year groups562.

The second plurality of representations are displayed (728) at anoverview-granularity size, smaller than the detailed-granularity size.In FIG. 5J, for example, a respective plurality of representations ofmedia items (e.g., 566 a, 566 b, 566 c) is displayed at anoverview-granularity size. For example, the overview-granularity size ofa respective representation in a respective plurality of representationsof media items 566 a (shown in FIG. 5J) is less than thedetailed-granularity size of a respective representation in a respectiveplurality of representations of media items 555 a (shown in FIG. 5I) or545 a (shown in FIG. 5H) or 510 a (shown in FIG. 5A).

In some embodiments, the overview-granularity size is (730) below theminimum object-selection size. FIG. 5J, for example, shows the devicedetecting a tap gesture with contact 568 over a respectiverepresentation of a media item in the plurality of representations ofmedia items 566 a. FIG. 5K, for example, shows the device continuing todisplay the plurality of representations of media items 566 a inresponse to detecting the tap gesture in FIG. 5J. In FIGS. 5J-5K, therespective representations in the plurality of representations of mediaitems 566 a are displayed at the overview-granularity size, and therespective representations in the plurality of representations of mediaitems 566 a are not selectable (e.g., each respective representation isless than 44×44 points/pixels). As shown in FIGS. 5J-5K, the respectiverepresentation is unaffected by the tap gesture with contact 568 overthe respective representation.

The second plurality of representations are spaced (732) apart from eachother by an overview-granularity distance, smaller than thedetailed-granularity distance. In FIG. 5J, for example, therepresentation in a respective plurality of representations of mediaitems (e.g., 566 a, 566 b, 566 c) are spaced apart from adjacentrepresentations by an overview-granularity distance. For example, theoverview-granularity distance between respective representations in arespective plurality of representations of media items 566 a (shown inFIG. 5J) is less than the detailed-granularity distance betweenrespective representations in a respective plurality of representationsof media items 555 a (shown in FIG. 5I) or 545 a (shown in FIG. 5H) or510 a (shown in FIG. 5A). In some embodiments, overview-granularitydistance is unperceivable to the human eye or is non-existent.

In some embodiments, the overview-granularity distance is (734) smallerthan the object-selection margin. In some embodiments, theoverview-granularity spacing is zero and the representations in theoverview-granularity are adjacent to each other (e.g., as shown in FIG.5J).

In some embodiments, a second representation of the media items in thesecond plurality of representations of the media items that correspondto the overview-granularity level includes (736): images that correspondto the subset of items in the first time range; and one or more imagesof items in the first time range that were omitted from the imagesincluded in the first representation of the media items. Thus, in someembodiments, the device omit thumbnails of photos when displaying arepresentation of an event (e.g., in events view 503) or event group(e.g., in months view 513 or seasons 551) but then displays thumbnailsof the omitted photos when displaying an overview of photos taken overthe course of a year (e.g., in years view 661) that includes the event.

In some embodiments, the second plurality of representations thatcorrespond to the overview-granularity level are grouped (738) into aplurality of groups and different groups of representations in thesecond plurality of representations are separated by a second distancethat is smaller than the first distance (e.g., no white space betweendifferent years). FIG. 5J, for example, shows a first group ofrepresentations 566 a corresponding to year group 562 a separated from asecond group of representations 566 b corresponding to year group 562 bseparated by a second distance (e.g., line or border 567) smaller thanthe first distance (e.g., description box 589 in FIG. 5Q).

In some embodiments, the device receives (740) a third request todisplay a third portion of the collection organized in accordance with asecond detailed-granularity level different from the firstdetailed-granularity level (e.g., an event group granularity levelrather than an event granularity level, a month granularity levelinstead of an event group granularity level, or a season granularitylevel rather than a month granularity level). Figure SI, for example,shows the device displaying a seasons view 541 in accordance with asecond detailed-granularity level (e.g., a season granularity level) inresponse to detecting a pinch gesture in FIG. 5H, where the devicedisplayed a months view 513 in accordance with a firstdetailed-granularity level (e.g., a month granularity level) in FIG. 5H.

In some embodiments, the second detailed-granularity level corresponds(742) to a second timescale larger than the first timescale (e.g., amulti-month timescale such as a three month “season”). FIG. 5I, forexample, shows the device displaying a seasons view 541 at the seconddetailed-granularity level corresponding to a multi-month or seasonstimescale. In contrast, FIG. 5H, for example, shows the devicedisplaying a months view 513 at the first detailed-granularity levelcorresponding to single month timescale.

In some embodiments, in response to the third request, the devicedisplays (744) a third plurality of representations of the media items.FIG. 5I, for example, shows the device displaying a seasons view 551with a plurality of seasons 552 a, 552 b, 552 c, 552 d, where acorresponding plurality of representations of the media items 555 a, 555b, 555 c, 555 d is displayed for the corresponding season.

In some embodiments, the third plurality of representations aredisplayed (746) at the detailed-granularity size. As noted above, FIG.5I, for example, shows a plurality of representations of media items(e.g., 555 a, 555 b, 555 c, 555 d) for corresponding seasons 552displayed at a detailed-granularity size. In some embodiments, the thirdplurality of representations are spaced apart (748) from each other bythe detailed-granularity distance. As noted above, in FIG. 5I, forexample, the representations in a respective plurality ofrepresentations of media items (e.g., 555 a, 555 b, 555 c, 555 d) arespaced apart from an adjacent representation by a detailed-granularitydistance.

In some embodiments, the device detects (750) a tap input at a locationon the touch-sensitive surface that corresponds to a respectiverepresentation of a respective media item. FIG. 5R, for example, showsthe device detecting a tap gesture with contact 594 over respectiverepresentation 596 within the plurality of representations of mediaitems 510 c associated with event 502 c. FIG. 5J, for example, alsoshows the device detecting a tap gesture with contact 568 over arespective representation of a media item in the plurality ofrepresentations of media items 566 a.

In some embodiments, in response (752) to detecting the tap input, thedevice replaces (754) display of the plurality of representations withdisplay of the respective media item in accordance with a determinationthat the respective representation was displayed in a plurality ofrepresentations displayed at the detailed-granularity size. Inaccordance with a determination that the respective representation 596in the plurality of representations of media items 510 c in FIG. 5R wasdisplayed at the detailed-granularity size, FIG. 5S, for example, showsthe device displaying a respective media item 598 (e.g., a full-sizeimage) corresponding to the respective representation 596 in a photoview 578 in response to detecting the tap gesture with contact 594 inFIG. 5R.

In some embodiments, in response to detecting the tap input, the devicecontinues (756) to display of the plurality of representations inaccordance with a determination that the respective representation wasdisplayed in a plurality of representations displayed at theoverview-granularity size (e.g., without displaying the respective mediaitem). In accordance with a determination that the respectiverepresentation of a media item in the plurality of representations ofmedia items 566 a in FIG. 5J was displayed at the overview-granularitysize, FIG. 5K, for example, shows the device continuing display of theplurality of representations 566 a (and forgoing display of a respectivemedia item corresponding to the respective representation) in responseto detecting the tap gesture with contact 568 in FIG. 5J.

In some embodiments, while displaying the second plurality ofrepresentations of the media items at the overview-granularity size, thedevice detects (758) a contact (e.g., for more than a predeterminedamount of time such as 0.05, 0.1, 0.2, 0.5 seconds or some otherreasonable period of time) at a location on the touch-sensitive surfacethat corresponds to a first representation of a first media item in thesecond plurality of representations of the media item. FIG. 5L, forexample, shows the device detecting a press and hold gesture withcontact 570 over a first respective representation of a media item inthe plurality of representations of media items 566 a displayed at theoverview-granularity size.

In some embodiments, in response to detecting (760) the contact, thedevice displays (762) an enlarged representation of the first media item(e.g., while continuing to display other representations in the secondplurality of representations of the media items). FIG. 5L, for example,shows the device displaying an enlarged representation (or a preview)572 of the first respective representation in response to detectingcontact 570 over the first respective representation for more than apredetermined amount of time (e.g., 0.05, 0.1, 0.2, 0.5 seconds or someother reasonable period of time).

In some embodiments, in response to detecting (760) the contact, thedevice also ceases (764) to display the first representation of thefirst media item. FIG. 5L, for example, further shows the device ceasingdisplay of the first respective representation in the plurality ofrepresentations of media items 566 a in response to detecting contact570 over the first respective representation for more than apredetermined amount of time.

In some embodiments, while displaying the enlarged representation of thefirst media item, the device: detects (766) liftoff of the contact fromthe touch-sensitive surface; and in response to detecting liftoff of thecontact from the touch-sensitive surface, replaces (768) display of theplurality of representations with display of the respective media item.FIG. 5N, for example, shows the device displaying a respective mediaitem 576 (e.g., a full-size image) corresponding to the first respectiverepresentation in a photo view 578 in response to detecting liftoff ofcontact 570 from position 570 a in FIG. 5L. FIG. 5N, for example,further shows the device displaying the respective media item 576 in thephoto view 578 in place of the years view 661 in FIG. 5L.

In some embodiments, while displaying the enlarged representation of thefirst media item, the device detects (770) movement of the contact to alocation on the touch-sensitive surface that corresponds to a secondrepresentation of a second media item in the second plurality ofrepresentations of the media items. FIG. 5M, for example, shows thedevice detecting movement of contact 570 to position 570 b (fromposition 570 a in FIG. 5L) over a second respective representation of amedia item in the plurality of representations of media items 566 a. Insome embodiments, in response to detecting movement of the contact, thedevice: ceases (772) to display the enlarged representation of the firstmedia item; redisplays the first representation of the first media item;displays an enlarged representation of the second media item (e.g.,while continuing to display other representations in the secondplurality of representations of the media items); and ceases to displaythe second representation of the second media item. In response todetecting the movement of contact 570 from position 570 a to 570 b, FIG.5M, for example, shows the device ceasing display of the enlargedrepresentation 572 and redisplaying the first representations 569 in theplurality of representations of media items 566 a. In response todetecting the movement of contact 570 from position 570 a to 570 b, FIG.5M, for example, also shows the device displaying an enlargedrepresentation 574 corresponding to the second respective representationand ceasing display of the second respective representation in theplurality of representations of media items 566 a. In some embodiments,the second respective representation is adjacent to the first respectiverepresentation in the plurality of representations of media items 566 aand distinct from the first respective representation. In this example,the first and second representations are sequentially adjacent images ina sequence of images related to an event entitled Desert Trip (as shownin FIG. 5N).

It should be understood that the particular order in which theoperations in FIGS. 7A-7D have been described is merely exemplary and isnot intended to indicate that the described order is the only order inwhich the operations could be performed. One of ordinary skill in theart would recognize various ways to reorder the operations describedherein. Additionally, it should be noted that details of other processesdescribed herein with respect to other methods described herein (e.g.,method 600) are also applicable in an analogous manner to method 700described above with respect to FIGS. 7A-7D. For example, the contacts,granularity levels, media items, representations of media items, events,event groups, and other user interface elements described above withreference to method 700 optionally have one or more of thecharacteristics of the contacts, granularity levels, media items,representations of media items, events, event groups, and other userinterface elements described herein with reference to other methodsdescribed herein (e.g., method 600). For brevity, these details are notrepeated here.

In accordance with some embodiments, FIG. 8 shows a functional blockdiagram of an electronic device 800 configured in accordance with theprinciples of the various described embodiments. The functional blocksof the device are, optionally, implemented by hardware, software, or acombination of hardware and software to carry out the principles of thevarious described embodiments. It is understood by persons of skill inthe art that the functional blocks described in FIG. 8 are, optionally,combined or separated into sub-blocks to implement the principles of thevarious described embodiments. Therefore, the description hereinoptionally supports any possible combination or separation or furtherdefinition of the functional blocks described herein.

As shown in FIG. 8, an electronic device 800 includes a display unit 802configured to display a graphic user interface, optionally, atouch-sensitive surface unit 804 configured to receive contacts, and aprocessing unit 806 coupled to the display unit 802 and, optionally, thetouch-sensitive surface unit 804. In some embodiments, the processingunit 806 includes an obtaining unit 808, a determining unit 810, adividing unit 812, a grouping unit 814, a receiving unit 816, a displayenabling unit 818, a moving unit 820, and an identifying unit 822.

The processing unit 806 is configured to: obtain (e.g., with obtainingunit 808) a collection of media items, where the media items are orderedin a chronological order in accordance with a time indicator associatedwith each of the media items; and determine (e.g., with the determiningunit 810) one or more patterns in the collection of media items based atleast in part on a comparison between properties of sequentiallyadjacent media items in the collection of media items. The processingunit 806 is further configured to divide (e.g., with the dividing unit812) the collection of media items into multiple events that includes aplurality of multi-item events, where: each multi-item event includes aplurality of the media items with time indicators within a correspondingevent time range; and the event time range for a multi-item event isselected in accordance with the one or more patterns determined in thecollection of media items.

In some embodiments, the event time ranges for the plurality ofmulti-item events are non-overlapping.

In some embodiments, dividing the collection of media items intomultiple events includes: determining (e.g., with the determining unit810) a pattern in the collection of media items that indicates that arespective event occurred over a period of time that includes arespective date-transition boundary; and dividing (e.g., with thedividing unit 812) the collection of media items so as to include one ormore items with a time indicator before the respective date-transitionboundary and one or more items with a time indicator after therespective date-transition boundary.

In some embodiments, dividing the collection of media items intomultiple events includes identifying (e.g., with the identifying unit822) a plurality of transition points in the collection of media items;and one or more of the transition points each correspond to a respectivechange in a respective pattern of data that corresponds to thecollection of media items that occurs at the transition point.

In some embodiments, the respective change in the respective pattern ofdata that corresponds to a respective media item is based one or moreof: an amount of time between a capture time of the respective mediaitem and a capture time of a sequentially adjacent media item in thechronological order; a change in detected physical location between acapture time of the respective media item and a capture time of asequentially adjacent media item in the chronological order; a change indetected altitude between a capture time of the respective media itemand a capture time of a sequentially adjacent media item in thechronological order; a change in detected between a capture time of therespective media item and a capture time of a sequentially adjacentmedia item in the chronological order; a change in detected networkconnections between a capture time of the respective media item and acapture time of a sequentially adjacent media item in the chronologicalorder; a change in weather between a capture time of the respectivemedia item and a capture time of a sequentially adjacent media item inthe chronological order; a change in physiological indicators of a userbetween a capture time of the respective media item and a capture timeof a sequentially adjacent media item in the chronological order; adifference between individuals associated with in a first plurality ofmedia items prior to the respective media item in the chronologicalorder and associated with a second plurality of media items after therespective media item in the chronological order; and a difference inrate of change of location over time between captures time of a firstplurality of media items prior to the respective media item in thechronological order and a rate of change of location over time between acapture times of a second plurality of media items after the respectivemedia item in the chronological order.

In some embodiments, the processing unit 806 is further configured to:after dividing the collection of media items into multiple events, group(e.g., with the grouping unit 814) a set of consecutive events thatinclude two or more of the multi-item events into a respectivepattern-based event group based at least in part on the one or morepatterns in the collection of media items, where: the pattern-basedevent group is divided from other event pattern-based groups inaccordance with a change in a first pattern in the collection of mediaitems the corresponds to the pattern-based event group; and a respectivemulti-item event within the pattern-based event group is divided fromother events in the pattern-based event group in accordance with achange in a second pattern in the collection of media items, where thechange in the second pattern does not correspond to a change in thefirst pattern that corresponds to the pattern-based event group.

In some embodiments, the processing unit 806 is further configured to:after dividing the collection of media items into multiple events, group(e.g., with the grouping unit 814) a set of consecutive events thatinclude two or more of the multi-item events into a plurality ofdate-based event groups that includes: a first date-based event groupthat includes a first set of events that include items with timeindicators within a first date range; and a second date-based eventgroup that includes a second set of events that include items with timeindicators within a second date range; and a respective event includesone or more items with time indicators in the first date range and oneor more items with time indicators in the second date range; and therespective event is included in both the first date-based event groupand the second date-based event group.

In some embodiments, the processing unit 806 is further configured to:receive (e.g., with the receiving unit 816) a request to enable displayof a respective portion of the collection of media items; and inresponse to the request to display the respective portion of thecollection of media items, enable display of (e.g., with the displayenabling unit 818) representations of a plurality of events thatcorrespond to the respective portion of the collection of media items onthe display unit 802.

In some embodiments, a respective representation of a respective eventof the plurality of events includes: an identifier of the respectiveevent; a list of locations of items in the respective event; and one ormore images that correspond to items in the respective event.

In some embodiments, the list of locations includes a subset oflocations of items in the respective event selected in accordance withlocation patterns in the respective event.

In some embodiments, the one or more images that correspond to items inthe respective event are selected so as to represent images associatedwith the locations in the list of locations.

In some embodiments, the representations of the plurality of eventsincludes a first representation of a first event that includes a firstplurality of representative images; the representations of the pluralityof events includes a second representation of a second event thatincludes a second plurality of representative images; and the processingunit 806 is further configured to: receive (e.g., with the receivingunit 816) a request to move a respective representative image from thefirst plurality of representative images to the second plurality ofrepresentative images; and in response to receiving the request to movethe respective representative image, move (e.g., with the moving unit820) an item that corresponds to the respective representative imagefrom the first event to the second event.

The operations described above with reference to FIGS. 6A-6E are,optionally, implemented by components depicted in FIGS. 1A-1B or FIG. 8.For example, obtaining operation 602, determining operation 604,dividing operation 606, and grouping operations 644 and 650 are,optionally, implemented by event sorter 170, event recognizer 180, andevent handler 190. Event monitor 171 in event sorter 170 detects acontact on touch-sensitive display 112, and event dispatcher module 174delivers the event information to application 136-1. A respective eventrecognizer 180 of application 136-1 compares the event information torespective event definitions 186, and determines whether a first contactat a first location on the touch-sensitive surface (or whether rotationof the device) corresponds to a predefined event or sub-event, such asselection of an object on a user interface, or rotation of the devicefrom one orientation to another. When a respective predefined event orsub-event is detected, event recognizer 180 activates an event handler190 associated with the detection of the event or sub-event. Eventhandler 190 optionally uses or calls data updater 176 or object updater177 to update the application internal state 192. In some embodiments,event handler 190 accesses a respective GUI updater 178 to update whatis displayed by the application. Similarly, it would be clear to aperson having ordinary skill in the art how other processes can beimplemented based on the components depicted in FIGS. 1A-1B.

In accordance with some embodiments, FIG. 9 shows a functional blockdiagram of an electronic device 900 configured in accordance with theprinciples of the various described embodiments. The functional blocksof the device are, optionally, implemented by hardware, software, or acombination of hardware and software to carry out the principles of thevarious described embodiments. It is understood by persons of skill inthe art that the functional blocks described in FIG. 9 are, optionally,combined or separated into sub-blocks to implement the principles of thevarious described embodiments. Therefore, the description hereinoptionally supports any possible combination or separation or furtherdefinition of the functional blocks described herein.

As shown in FIG. 9, an electronic device 900 includes a display unit 902configured to display a graphic user interface, a touch-sensitivesurface unit 904 configured to receive contacts, and a processing unit906 coupled to the display unit 902 and the touch-sensitive surface unit904. In some embodiments, the processing unit 906 includes an obtainingunit 908, a receiving unit 910, a displaying enabling unit 912, adetecting unit 914, and a determining unit 916.

The processing unit 906 is configured to obtain (e.g., with theobtaining unit 908) a collection of media items, where the media itemsare organized into a hierarchy of granularity levels that includes oneor more detailed-granularity levels within one or moreoverview-granularity levels. The processing unit 906 is furtherconfigured to: receive (e.g., with the receiving unit 910) a firstrequest to enable display of a first portion of the collection organizedin accordance with a first detailed-granularity level; and in responseto the first request, enable display of (e.g., with the display enablingunit 912) a first plurality of representations of the media items,where: the first plurality of representations are displayed on thedisplay unit 902 at a detailed-granularity size; and the first pluralityof representations are spaced apart from each other by adetailed-granularity distance. The processing unit 906 is furtherconfigured to: receive (e.g., with the receiving unit 910) a secondrequest to enable display of a second portion of the collectionorganized in accordance with a respective overview-granularity levelthat corresponds to multiple detailed-granularity levels; and inresponse to the second request, enable display of (e.g., with thedisplay enabling unit 912) a second plurality of representations of themedia items, where: the second plurality of representations aredisplayed on the display unit 902 at an overview-granularity size,smaller than the detailed-granularity size; and the second plurality ofrepresentations are spaced apart from each other by anoverview-granularity distance, smaller than the detailed-granularitydistance.

In some embodiments, the processing unit 906 is further configured to:receive (e.g., with the receiving unit 910) a third request enabledisplay of a third portion of the collection organized in accordancewith a second detailed-granularity level different from the firstdetailed-granularity level; and in response to the third request, enabledisplay of (e.g., with the display enabling unit 912) a third pluralityof representations of the media items, where: the third plurality ofrepresentations are displayed on the display unit 902 at thedetailed-granularity size; and the third plurality of representationsare spaced apart from each other by the detailed-granularity distance.

In some embodiments, the first detailed-granularity level corresponds toa first timescale; the second detailed-granularity level corresponds toa second timescale larger than the first timescale; and theoverview-granularity level corresponds to a third timescale larger thanthe second timescale.

In some embodiments, a first representation of the media items in thefirst plurality of representations of the media items that correspond tothe first detailed-granularity level includes images that correspond toa subset of items in a first time range; and a second representation ofthe media items in the second plurality of representations of the mediaitems that correspond to the overview-granularity level includes: imagesthat correspond to the subset of items in the first time range; and oneor more images of items in the first time range that were omitted fromthe images included in the first representation of the media items.

In some embodiments, the detailed-granularity distance is greater thanan object-selection margin; and the overview-granularity distance issmaller than the object-selection margin.

In some embodiments, the detailed-granularity size is above a minimumobject-selection size; and the overview-granularity size is below theminimum object-selection size.

In some embodiments, the processing unit 906 is further configured to:detect (e.g., with the detecting unit 914) a tap input at a location onthe touch-sensitive surface unit 904 that corresponds to a respectiverepresentation of a respective media item; and in response to detectingthe tap input: in accordance with a determination (e.g., with thedetermining unit 916) that the respective representation was displayedin a plurality of representations displayed at the detailed-granularitysize, replace display of (e.g., with the display enabling unit 912) theplurality of representations with display of the respective media item;and in accordance with a determination (e.g., with the determining unit916) that the respective representation was displayed in a plurality ofrepresentations displayed at the overview-granularity size, continuedisplay of (e.g., with the display enabling unit 912) the plurality ofrepresentations.

In some embodiments, the processing unit 906 is further configured to:while displaying the second plurality of representations of the mediaitems at the overview-granularity size, detect (e.g., with the detectingunit 914) a contact at a location on the touch-sensitive surface unit904 that corresponds to a first representation of a first media item inthe second plurality of representations of the media items; and inresponse to detecting the contact, enable display of (e.g., with thedisplay enabling unit 912) an enlarged representation of the first mediaitem.

In some embodiments, the processing unit 906 is further configured tocease display of (e.g., with the display enabling unit 912) the firstrepresentation of the first media item in response to detecting thecontact.

In some embodiments, the processing unit 906 is further configured to:while displaying the enlarged representation of the first media item,detect (e.g., with the detecting unit 914) liftoff of the contact fromthe touch-sensitive surface unit 904; and in response to detectingliftoff of the contact from the touch-sensitive surface unit 904,replace display of (e.g., with the display enabling unit 912) theplurality of representations with display of the respective media item.

In some embodiments, the processing unit 906 is further configured to:while displaying the enlarged representation of the first media item,detect (e.g., with the detecting unit 914) movement of the contact to alocation on the touch-sensitive surface unit 904 that corresponds to asecond representation of a second media item in the second plurality ofrepresentations of the media items; and in response to detectingmovement of the contact: cease display of (e.g., with the displayenabling unit 912) the enlarged representation of the first media item;enable redisplay of (e.g., with the display enabling unit 912) the firstrepresentation of the first media item; enable display of (e.g., withthe display enabling unit 912) an enlarged representation of the secondmedia item; and cease display of (e.g., with the display enabling unit912) the second representation of the second media item.

In some embodiments, the first plurality of representations thatcorrespond to the first detailed-granularity level are grouped into aplurality of groups and different groups of representations in the firstplurality of representations are separated by at least a first distance;and the second plurality of representations that correspond to theoverview-granularity level are grouped into a plurality of groups anddifferent groups of representations in the second plurality ofrepresentations are separated by a second distance that is smaller thanthe first distance.

The operations in the information processing methods described aboveare, optionally implemented by running one or more functional modules ininformation processing apparatus such as general purpose processors(e.g., as described above with respect to FIGS. 1A and 3) or applicationspecific chips.

The operations described above with reference to FIGS. 7A-7D are,optionally, implemented by components depicted in FIGS. 1A-1B or FIG. 9.For example, obtaining operation 702; receiving operations 704, 722, and740; display enabling operations 708, 726, and 744; and detectingoperations 750 and 758 are, optionally, implemented by event sorter 170,event recognizer 180, and event handler 190. Event monitor 171 in eventsorter 170 detects a contact on touch-sensitive display 112, and eventdispatcher module 174 delivers the event information to application136-1. A respective event recognizer 180 of application 136-1 comparesthe event information to respective event definitions 186, anddetermines whether a first contact at a first location on thetouch-sensitive surface (or whether rotation of the device) correspondsto a predefined event or sub-event, such as selection of an object on auser interface, or rotation of the device from one orientation toanother. When a respective predefined event or sub-event is detected,event recognizer 180 activates an event handler 190 associated with thedetection of the event or sub-event. Event handler 190 optionally usesor calls data updater 176 or object updater 177 to update theapplication internal state 192. In some embodiments, event handler 190accesses a respective GUI updater 178 to update what is displayed by theapplication. Similarly, it would be clear to a person having ordinaryskill in the art how other processes can be implemented based on thecomponents depicted in FIGS. 1A-1B.

The foregoing description, for purpose of explanation, has beendescribed with reference to specific embodiments. However, theillustrative discussions above are not intended to be exhaustive or tolimit the invention to the precise forms disclosed. Many modificationsand variations are possible in view of the above teachings. Theembodiments were chosen and described in order to best explain theprinciples of the invention and its practical applications, to therebyenable others skilled in the art to best use the invention and variousdescribed embodiments with various modifications as are suited to theparticular use contemplated.

What is claimed is:
 1. A computer readable storage medium storing one ormore programs, the one or more programs comprising instructions, whichwhen executed by an electronic device with a display and atouch-sensitive surface, cause the electronic device to: obtain acollection of media items, wherein the media items are organized into ahierarchy of granularity levels that includes one or moredetailed-granularity levels within one or more overview-granularitylevels; receive a first request to display a first portion of thecollection organized in accordance with a first detailed-granularitylevel; in response to the first request, display a first plurality ofrepresentations of the media items wherein: the first plurality ofrepresentations are displayed at a detailed-granularity size; and thefirst plurality of representations are spaced apart from each other by adetailed-granularity distance; receive a second request to display asecond portion of the collection organized in accordance with arespective overview-granularity level that corresponds to multipledetailed-granularity levels; and, in response to the second request,display a second plurality of representations of the media itemswherein: the second plurality of representations are displayed at anoverview-granularity size, smaller than the detailed-granularity size;and the second plurality of representations are spaced apart from eachother by an overview-granularity distance, smaller than thedetailed-granularity distance.
 2. The computer readable storage mediumof claim 1, including instructions, which when executed by theelectronic device, cause the electronic device to: receive a thirdrequest to display a third portion of the collection organized inaccordance with a second detailed-granularity level different from thefirst detailed-granularity level; in response to the third request,display a third plurality of representations of the media items,wherein: the third plurality of representations are displayed at thedetailed-granularity size; and the third plurality of representationsare spaced apart from each other by the detailed-granularity distance.3. The computer readable storage medium of claim 2, wherein: the firstdetailed-granularity level corresponds to a first timescale; the seconddetailed-granularity level corresponds to a second timescale larger thanthe first timescale; and the overview-granularity level corresponds to athird timescale larger than the second timescale.
 4. The computerreadable storage medium of claim 1, wherein: a first representation ofthe media items in the first plurality of representations of the mediaitems that correspond to the first detailed-granularity level includesimages that correspond to a subset of items in a first time range; and asecond representation of the media items in the second plurality ofrepresentations of the media items that correspond to theoverview-granularity level includes: images that correspond to thesubset of items in the first time range; and one or more images of itemsin the first time range that were omitted from the images included inthe first representation of the media items.
 5. The computer readablestorage medium of claim 1, wherein: the detailed-granularity distance isgreater than an object-selection margin; and the overview-granularitydistance is smaller than the object-selection margin.
 6. The computerreadable storage medium of claim 1, wherein: the detailed-granularitysize is above a minimum object-selection size; and theoverview-granularity size is below the minimum object-selection size. 7.The computer readable storage medium of claim 1, including instructions,which when executed by the electronic device, cause the electronicdevice to: detect a tap input at a location on the touch-sensitivesurface that corresponds to a respective representation of a respectivemedia item; and in response to detecting the tap input: in accordancewith a determination that the respective representation was displayed ina plurality of representations displayed at the detailed-granularitysize, replace display of the plurality of representations with displayof the respective media item; and, in accordance with a determinationthat the respective representation was displayed in a plurality ofrepresentations displayed at the overview-granularity size, continue todisplay of the plurality of representations.
 8. The computer readablestorage medium of claim 1, including instructions, which when executedby the electronic device, cause the electronic device to: whiledisplaying the second plurality of representations of the media items atthe overview-granularity size, detect a contact at a location on thetouch-sensitive surface that corresponds to a first representation of afirst media item in the second plurality of representations of the mediaitems; and, in response to detecting the contact: display an enlargedrepresentation of the first media item.
 9. The computer readable storagemedium of claim 8, including instructions, which when executed by theelectronic device, cause the electronic device to: in response todetecting the contact, cease to display the first representation of thefirst media item.
 10. The computer readable storage medium of claim 8,including instructions, which when executed by the electronic device,cause the electronic device to: while displaying the enlargedrepresentation of the first media item, detect liftoff of the contactfrom the touch-sensitive surface; and, in response to detecting liftoffof the contact from the touch-sensitive surface, replace display of theplurality of representations with display of the respective media item.11. The computer readable storage medium of claim 9, includinginstructions, which when executed by the electronic device, cause theelectronic device to: while displaying the enlarged representation ofthe first media item, detect movement of the contact to a location onthe touch-sensitive surface that corresponds to a second representationof a second media item in the second plurality of representations of themedia items; and in response to detecting movement of the contact: ceaseto display the enlarged representation of the first media item;redisplay the first representation of the first media item; display anenlarged representation of the second media item; and cease to displaythe second representation of the second media item.
 12. The computerreadable storage medium of claim 1, wherein: the first plurality ofrepresentations that correspond to the first detailed-granularity levelare grouped into a plurality of groups and different groups ofrepresentations in the first plurality of representations are separatedby at least a first distance; and the second plurality ofrepresentations that correspond to the overview-granularity level aregrouped into a plurality of groups and different groups ofrepresentations in the second plurality of representations are separatedby a second distance that is smaller than the first distance.
 13. Anelectronic device, comprising: a display; a touch-sensitive surface; oneor more processors; a memory; and one or more programs, wherein the oneor more programs are stored in the memory and configured to be executedby the one or more processors, the one or more programs includinginstructions for: obtaining a collection of media items, wherein themedia items are organized into a hierarchy of granularity levels thatincludes one or more detailed-granularity levels within one or moreoverview-granularity levels; receiving a first request to display afirst portion of the collection organized in accordance with a firstdetailed-granularity level; in response to the first request, displayinga first plurality of representations of the media items wherein: thefirst plurality of representations are displayed at adetailed-granularity size; and the first plurality of representationsare spaced apart from each other by a detailed-granularity distance;receiving a second request to display a second portion of the collectionorganized in accordance with a respective overview-granularity levelthat corresponds to multiple detailed-granularity levels; and inresponse to the second request, displaying a second plurality ofrepresentations of the media items wherein: the second plurality ofrepresentations are displayed at an overview-granularity size, smallerthan the detailed-granularity size; and the second plurality ofrepresentations are spaced apart from each other by anoverview-granularity distance, smaller than the detailed-granularitydistance.
 14. A method comprising: at an electronic device with adisplay, a touch-sensitive surface, one or more processors and memory:obtaining a collection of media items, wherein the media items areorganized into a hierarchy of granularity levels that includes one ormore detailed-granularity levels within one or more overview-granularitylevels; receiving a first request to display a first portion of thecollection organized in accordance with a first detailed-granularitylevel; in response to the first request, displaying a first plurality ofrepresentations of the media items, wherein: the first plurality ofrepresentations are displayed at a detailed-granularity size; and thefirst plurality of representations are spaced apart from each other by adetailed-granularity distance; receiving a second request to display asecond portion of the collection organized in accordance with arespective overview-granularity level that corresponds to multipledetailed-granularity levels; and in response to the second request,displaying a second plurality of representations of the media items,wherein: the second plurality of representations are displayed at anoverview-granularity size, smaller than the detailed-granularity size;and the second plurality of representations are spaced apart from eachother by an overview-granularity distance, smaller than thedetailed-granularity distance. transition point.